我在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文件,但我觉得没有必要。