注入后,Chrome扩展程序脚本无法执行

时间:2018-06-14 11:28:00

标签: javascript google-chrome

我在StackOverflow上对此进行了研究,要么我没有得到答案,要么我不理解答案。

我正在注入一个脚本,该脚本将在一个云软件上切换标题。试图释放一些屏幕房地产。

当我尝试通过单击按钮执行我的脚本时,出现以下错误:

Uncaught ReferenceError: toggle is not defined
at HTMLInputElement.onclick 

因为我在按钮上方定义了切换,所以这很奇怪。当我将脚本硬编码到页面中时(作为保存的HTML文件)

以下是以

开头的文件

的manifest.json

    {
  "name": "Injector",
  "version": "0.0.1",
  "manifest_version": 2,
  "description": "Injecting stuff",
  "homepage_url": "http://verdevalley.ihostfull.com",
  "background": {
    "scripts": [
      "background.js"
    ],
    "persistent": true
  },
  "browser_action": {
    "default_title": "Inject!"
  },
    "web_accessible_resources": ["script.js"],
  "permissions": [
    "https://*/*",
    "http://*/*",
    "file://*",
    "activeTab",
    "tabs"
  ]
}

background.js

// listen for our browerAction to be clicked
chrome.browserAction.onClicked.addListener(function (tab) {
    // for the current tab, inject the "inject.js" file & execute it
    chrome.tabs.executeScript(tab.ib, {
        file: 'inject.js'
    });
});

inject.js

(function() {
var div = document.createElement('div');
div.style.position = 'fixed';
div.style.zIndex="1004";
div.innerHTML = '<script id="custom">function toggle(){let x = document.getElementById("fixedTop");if (x.style.display === "none") {x.style.display = "block";} else {x.style.display = "none";}}</script><input type=button value=toggle onclick=toggle  float="left">';
document.body.appendChild(div);
document.getElementById('navbar').appendChild(div);

})();

如果需要,我可以提供运行此脚本的HTML文件,但我觉得没有必要。

0 个答案:

没有答案