gpt4 book ai didi

javascript - chrome 扩展删除脚本标签

转载 作者:搜寻专家 更新时间:2023-11-01 05:25:07 26 4
gpt4 key购买 nike

我到处寻找这个问题的答案。我希望我的扩展程序禁用页面上的所有 javascript,但允许插入有效的脚本。 (所以 chrome.contentSettings.javascript 目前不是一个有效的选项)或者我想要一种方法在它们中的任何一个被触发之前删除所有脚本标签(这有点相同)

我尝试将内容脚本插入到 runat:document_start 但当时 dom 还没有完全存在。我尝试在加载状态时在 tabs.onUpdate 上添加内容,但为时已晚,并且在 document_end 中添加了内容脚本(所有这些都试图删除脚本标签),但仍然为时已晚。在绝望中,我尝试将 element.innerHTML 的 getter 和 setter 的行为更改为。删除标签,但效果不佳

我试图避免向 location.href 发送 xhr 请求并解析和重新设置内容,因为这太密集了。

有什么想法吗?

最佳答案

在看到您的评论后,我认为这可能符合您的需求。它的工作原理是获取页面的源代码,将其呈现为 DOM,禁用所有 JS,然后将其放回页面中。不完全是你想要的,但应该很适合你的情况......

ma​​infest.json

{
"name": "Reload and Kill JS - Using a content script",
"version": "1.0",
"permissions": [
"tabs", "<all_urls>" , "storage"
],
"background": {
"scripts": ["background.js"]
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["injectedCode.js"],
"run_at" : "document_start"
}
],
"minimum_chrome_version" : "20",
"manifest_version" : 2
}

background.js

chrome.storage.local.set({"blockhttp://paez.kodingen.com/":true});

injectedCode.js

reloadAndKillJS = function() {
document.documentElement.innerHTML = 'Reloading Page...';

var xhr = new XMLHttpRequest();

xhr.open('GET', window.location.href, true);

xhr.onerror = function() {
document.documentElement.innerHTML = 'Error getting Page';
}

xhr.onload = function() {
var page = document.implementation.createHTMLDocument("");
page.documentElement.innerHTML = this.responseText;

var newPage = document.importNode(page.documentElement,true);

var nodeList = newPage.querySelectorAll('script');
for (var i = 0; i < nodeList.length; ++i) {
var node = nodeList[i];
if (node.src) {
node.setAttribute('original-src', node.src);
node.removeAttribute('src');
}
node.innerText = '';
}

document.replaceChild(newPage, document.documentElement);
delete page;

// Do your thing here
}

xhr.send();
}


chrome.storage.local.get("block"+window.location.href,function(items)
{
if (items["block"+window.location.href]){
window.stop();
reloadAndKillJS();
}
});

关于javascript - chrome 扩展删除脚本标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11638509/

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