簡體   English   中英

Chrome擴展程序不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM