从popup.html,如何通过onclick按钮运行javascript函数?

时间:2012-05-08 04:25:24

标签: google-chrome-extension

我正在尝试为Chrome构建扩展程序,但我是新手,而且我无法理解Google提供的文档。我希望扩展程序有一个显示几个按钮的弹出窗口,当单击一个按钮时,我想运行一个脚本。

这是我的设置:

popup.html

<button id="test1" onclick="getSite();">button 1</button>
<button id="test2" onclick="getSite();">button 2</button>

content_script.js

function getSite(){alert('getSite works!');}

我无法理解如何使用chrome javascript api,因为我看到其他人说使用chrome.tabs.executeScript,但我无法弄清楚该行的去向。谁能帮我?我会给你一个饼干!或只是一个upvote ..或者两者兼而有之?

2 个答案:

答案 0 :(得分:2)

您尚未在Popup.html页面或用户当前在浏览器上工作的页面上提及您希望脚本在哪个页面上运行onclick。如果只是您要在其中执行脚本的popup.html page,请将其包含在popup.html页面中。

如果您想在用户的浏览器页面上执行它们,则必须将消息传递到您的后台页面,后台将以当前标签的id和chrome.tabs.executeScript作为参数执行{file: 'yourjsfile.js'}

答案 1 :(得分:1)

由于Google Content Security Policy施加的限制,我认为您遇到了这个问题。它提到像你在代码中提到的那样的iniline javascript将不会被执行。尝试将HTML标记中的onclick="getSite()"移至content_script.js。使用addEventListener功能将事件附加到按钮。