[英]Chrome extension does not work
請不要將其標記為重復,因為我的問題有所不同。 我正在嘗試制作阻止廣告的Chrome擴展程序。 但這似乎無能為力。 這是我的代碼:
的manifest.json
{
"manifest_version": 2,
"name": "Ad Killer",
"description": "A Basic ad remover",
"version": "1.0",
"browser_action": {
"default_icon": "ad128.png",
"default_popup": "popup.html"
},
"permissions": [
"activeTab",
"https://ajax.googleapis.com/"
]
}
這是我的popup.html:
<html>
<body>
<script type="text/javascript">
var elems = document.getElementsByTagName("iframe");
for(var i = 0, max = elems.length; i < max; i++) {
elems[i].hidden=true;
}
</script>
<h1> Ads Killed </h1>
</body>
</html>
問題在於它顯示“廣告被殺死”消息,但不執行任何操作。 我的問題是,有什么辦法可以使它起作用? 我對javascript的經驗很少,對您的幫助將不勝感激。
您的腳本僅在popup.html
中運行,這是您單擊擴展圖標時在彈出窗口中顯示的內容。 它無權訪問瀏覽器選項卡中的頁面。
如果希望此腳本在瀏覽器選項卡的頁面上運行,則需要創建一個內容腳本 ,該腳本將注入到每個選項卡中。
如果要在彈出窗口和選項卡中的內容腳本之間進行通信,則需要使用消息傳遞在所有不同頁面之間發送消息。 然后,每個頁面將偵聽這些消息,並使用類似於事件處理程序的語法進行相應的響應。
內容腳本的分配是從manifest.json
文件完成的。 為了限制將內容腳本應用於哪些站點,您必須提供URL匹配模式的數組。 然后,您可以提供將哪些JavaScript或CSS文件應用於該頁面。
例如,如果您想對所有公共網頁應用一些javascript,則可以執行以下操作:
"content_scripts": [
{
"matches": ["http://*", "https://*"],
"js": ["myscript.js"]
}
],
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.