我很想创建一个在执行脚本之前阻止脚本的Chrome扩展程序。
脚本标记位于正文标记中,而不在头部。
是否可以这样做?
manifest.json中的我设置了content_scripts,如下所示:
"content_scripts": [
{
"run_at": "document_start",
"matches": ["http://website.it/*"],
"js": ["dojob.js"]
}]
我的剧本就是这个:
var cont = 0;
document.addEventListener("DOMNodeInserted", function(event){
if(cont==0){
alert(document.getElementsByTagName("script")[0].src);
document.getElementsByTagName("script")[0].src = "";
cont++;
}
});
但剧本仍在运行......
我怎么能让它起作用?
答案 0 :(得分:4)
自从你src=""
以来我认为js是外部的。如果是这种情况那么您可以使用beforeload事件或webrequest api来阻止加载脚本。
function doBeforeLoad(event){
if (event.srcElement.tagName=="SCRIPT" && event.srcElement.src=='test.js') {
event.preventDefault();
}
}
document.addEventListener('beforeload', doBeforeLoad , true);