Chrome.tabs.executeScript(); + .addEventListener("点击",...);通过chrome扩展将代码注入活动网页

时间:2018-06-11 18:04:15

标签: javascript html google-chrome-extension extension-methods addeventlistener

我正在尝试制作一个Chrome扩展程序,通过popup.html文件将代码注入活动网页...

popup.html>

<!DOCTYPE html>
<html>
    <body>
        <button id="Mr_Button-Click_Extend">hello this is a test</button>
    </body>
</html>
<script>
document.getElementById("Mr_Button-Click_Extend").addEventListener("click", TheGreatEmbed() 
{
chrome.tabs.executeScript(null, {file: 'js/inject.js'});
});
</script>

js / inject.js&gt;

document.write('<h1 style="position: fixed; top: 200; left: 200; z-index: 999999;">testing... testing...</h1>');

清单&gt;

{
"name": "GAME HUB.io copy",

"version": "0.0.1",
"manifest_version": 2,
"description": "YEET",


"homepage_url": "https://www.youtube.com/channel/UCbmPRCzP88oaId-4piz5Weg",

"icons": {
    "128": "icons/Icon-128.png"
},
    "default_locale": "en",

    "browser_action": {
    "default_icon": "icons/Icon-128.png",
    "default_title": "GAME HUB.io TEST MESSAGES",   
    "default_popup": "src/html/popup.html"
},
"permissions": [
    "activeTab",
    "http://*/*",
"https://*/*",
"<all_urls>",
    "webRequest"
]
}

这个问题已经简化,以便更容易理解...... 由于@Drapaster对旧问题的回答,尝试解决其他更复杂的问题。

上面的代码示例只是我努力实现的基本功能。

问题是为什么这不起作用?我在这里错过了什么?我是否需要将内容从脚本标记移动到名为的新文件:popup-helper.js?修改清单?或者是别的什么?请帮忙......

1 个答案:

答案 0 :(得分:0)

根据https://developer.chrome.com/extensions/contentSecurityPolicy#JSExecution Chrome扩展程序限制使用内联javascript代码,如:

  

的onclick =&#34; ...&#34;

chrome.tabs.executeScript(null, {file: 'js/inject.js'});

看起来不错。

尝试以这种方式附加点击事件:

document.getElementById("someH2Id...").addEventListener("click", function()
{
    chrome.tabs.executeScript(null, {file: 'js/inject.js'});
});