我正在 Chrome 中制作扩展程序,需要停止页面加载(不完全加载页面)并重定向到 url(如果与 ajax 查询匹配)。
我在用content_scripts
.
并尝试使用
window.location.replace("http://facebook.com");
但是页面加载完成后就会发生重定向。
甚至尝试使用
window.stop();
这也无法阻止页面加载。
有没有可能的方法来停止页面加载并在页面加载之前重定向它?
您正在使用内容脚本尝试此操作。
内容脚本有一个run_at范围 https://developer.chrome.com/extensions/content_scripts#run_at,它指示它们执行的时间(相对于页面加载)。
默认情况下,内容脚本运行于document_idle
level:Chrome 会等到页面完全加载后再执行。
您有两个选择:
-
可以保留内容脚本路由,但需要注明"run_at" : "document_start"
内容脚本配置中的参数。
这将尽快执行您的代码(在加载文档之前,但在响应开始之后)。
-
如果您担心根本不加载页面(不向站点发送请求),则需要在较低级别拦截它。webRequest API https://developer.chrome.com/extensions/webRequest可以提供做到这一点的手段。
如果您收到请求onBeforeRequest
事件,您甚至可以在发送之前重定向它。建议按类型过滤。请注意,在这种情况下您甚至不需要内容脚本:webRequest
需要在后台脚本中监听事件。
See the 猫块示例 https://developer.chrome.com/extensions/samples#catblock.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)