Chrome与Firefox扩展程序

时间:2015-08-07 12:01:26

标签: javascript google-chrome firefox google-chrome-extension

我为Firefox写了一个简单的扩展。不幸的是,我的朋友使用Chrome,我不明白为什么相同的代码在Chrome中无效。 Firefox的标签与Chrome标签之间的区别是什么?这是代码:

的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 个答案:

答案 0 :(得分:1)

您的customAddon.js代码运行是一个单独的,不可见的页面,称为后台页面。

当然,它的location.href永远不会是那个URL,它的元素永远不会与你期望的相匹配。

你真正需要的是content script。您可以设置过滤器,告诉它应该加载哪个页面,然后它将执行访问页面的DOM,这正是您所需要的。无需使用tabs API。