0

Я написал простое расширение для Firefox. К сожалению, мой друг использует Chrome, и я не понимаю, почему тот же код ничего не делает в Chrome. В чем разница между вкладками Firefox и вкладками Chrome? Вот код:Chrome vs. Firefox Extensions

manifest.json:

{ 
    "manifest_version": 2, 

    "name": "customAddon", 
    "description": "Unsurprisingly, this addon does things.", 
    "version": "1", 
    "background": { 
    "persistent": true, 
    "scripts": ["customAddon.js"] 
    }, 
    "permissions": [ 
    "tabs", 
    "http://*.com/" 
    ] 
} 

customAddon.js:

chrome.tabs.onUpdated.addListener(function(tabId , info) { 
    if (info.status == "complete") { 
      if (window.location.href == 'http://ninjakiwi.com/Games/Action/Play/SAS-Zombie-Assault-4.html') { 
       var elem = document.getElementById('secondary'); 
       elem.innerHTML = ''; 
       var removeLinks = (function() { 
        return function(passedElems){ 
         for (i = 0; i < passedElems.length; i++) { 
          passedElems[i].setAttribute('onclick','return false;'); 
         }}})(); 
       removeLinks(document.getElementsByClassName('group')); 
       removeLinks(document.getElementsByClassName('nav')); 
       removeLinks(document.getElementsByClassName('local-skin')); 
       document.getElementsByClassName('header-bar')[0].setAttribute('style','padding-left:85px; padding-right:-85px;');}} 
    } 
}); 

ответ

1

Ваш customAddon.js код работает отдельная, невидимая страница, называется фон страницы.

Конечно, его location.href никогда не будет таким URL, и его элементы никогда не будут соответствовать ожидаемым.

Что вам действительно нужно, это content script. Вы можете установить фильтр, который сообщает, на какой странице он должен быть загружен, а затем он будет выполняться с доступом к DOM страницы, что именно то, что вам нужно. Не нужно использовать API tabs.

Смежные вопросы