gpt4 book ai didi

javascript - 下面的 Chrome 扩展 javascript 代码片段到底是如何工作的?

转载 作者:行者123 更新时间:2023-11-27 23:11:42 26 4
gpt4 key购买 nike

我没有收到 {urls: ["://www.mysite.com/.js"]}, [“阻止”]);部分。此代码可以在@Chrome extension to modify page's script includes and JS找到由于 stackoverflow 规则,将 mysite(dot)com 稍微(强制)修改为 example.com。

chrome.webRequest.onBeforeRequest.addListener(
function(details) {
if( details.url == "http://www.example.com/js/library.js" )
return {redirectUrl: "http://www.example.com/js/library_dev.js" };
},
{urls: ["*://www.example.com/*.js"]},
["blocking"]);

最佳答案

onBeforeRequest.addEventListener的第二个参数是一个可选的 requestFilter 对象。

它有四个附加属性

  • url(可选字符串数组)
    • 每个元素都是一个 URL 或 URL 模式。请参阅内容脚本匹配模式以了解 URL 模式定义。无法匹配任何 URL 的请求将被过滤掉。
  • 类型(可选的字符串数组)
    • 每个元素都是上述的请求类型。无法匹配任何类型的请求将被过滤掉。
  • tabId(可选整数)
    • 发生请求的选项卡 ID。
  • windowId(可选整数)
    • 发生请求的窗口的 ID。

所以urls: ["*://www.example.com/*.js"]}正在向 onBeforeRequest 监听器添加 URL 过滤器。

这是尝试匹配对 www.example.com 域上的 javascript 文件的任何请求。使用 http 或 https

[(方案) *] :\\[(主机) www.example.com]/[(路径) *.js]

<url-pattern> := <scheme>://<host><path>
<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp'
<host> := '*' | '*.' <any char except '/' and '*'>+
<path> := '/' <any chars>

https://developer.chrome.com/extensions/match_patterns

<小时/>

第三个参数['blocking']是一个可选的字符串数组,用于提供额外信息。这会修改 Chrome 返回回调的方式。

由于包含“阻塞”,所以回调函数是同步处理的。这意味着请求将被阻止,直到回调函数返回。因此,对于 onBeforeRequest,您可以使用它在请求发生之前取消或重定向请求。

此处提供更多信息:

https://www.chromium.org/developers/design-documents/extensions/proposed-changes/apis-under-development/notifications-of-web-request-and-navigation

关于javascript - 下面的 Chrome 扩展 javascript 代码片段到底是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36141929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com