javascript - Chrome 扩展 - 打开没有图像的标签
问题描述
我已经构建了一个 Chrome 扩展程序,可以在新选项卡中打开用于 html 解析的 url。一切正常,但我想通过在页面加载之前剥离图像来优化加载速度。
到目前为止,我以这种方式调用选项卡:
function CreateTab(createProperties, shop_list) {
return new Promise((resolve, reject) => {
chrome.tabs.create(createProperties, tab => {
if (chrome.runtime.lastError) {
reject(new Error(chrome.runtime.lastError));
} else {
chrome.tabs.executeScript(tab.id, {
file: 'GetSource.js',
}, async function(results) {
my parsing code here
}
}
}
}
}
当调用 executeScript 时,已经太晚了,页面就在那里。有没有办法在页面加载之前执行脚本,以便我可以在获取 html 之前删除图像?
谢谢洛朗
解决方案
您可以将chrome.webRequest API ( https://developer.chrome.com/extensions/webRequest ) 与onBeforeRequest一起使用,该 API 在请求即将发生时触发。此事件在建立任何 TCP 连接之前发送,可用于取消或重定向请求。这样的事情应该会阻止 .jpg 图像加载:
chrome.webRequest.onBeforeRequest.addListener(
function(details) {
return {cancel: details.url.indexOf(".jpg") != -1};
},
{urls: ["<all_urls>"]},
["blocking"]);
推荐阅读
- javascript - CheckBoxFor 数据切换更改事件不起作用?jQuery
- python-3.x - 确定性能和观察窗口
- python - DataFrame.lookup 需要具有最新版本 Pandas 的唯一索引和列
- postgresql - 带有大量插入语句的 Postgresql 脚本性能缓慢
- ios - 我想使用 Swift 根据系统时区将 UTC 日期转换为系统日期。它早些时候对我有用
- java - 多种返回类型和属性类型
- r - 带有几何(点)类型的 dbWriteTable 到 MariaDB
- azure - Azure Blob 存储 - 动态路由/通配符
- javascript - Firefox 中的 Translate3d() 滚动动画问题
- load-testing - 如果用户数量少于蝗虫的孵化率会发生什么