2014-03-29 124 views
0

我正在尝试为Google Chrome创建扩展程序,并且onclick方法似乎无法正常工作。我有一个HTML文件popup.html:onclick不适用于Chrome扩展程序?

<!DOCTYPE html> 
<html> 
<body> 
<p id="demo">Before clicking button</p> 
<button type="button" id="thing">Pls work</button> 
<script src="popup.js"></script> 
</body> 
</html> 

和JavaScript文件popup.js:

var a =0; 
function myFunction() 
{ 
    a= a +1; 
    document.getElementById('demo').textContent=a; 
} 
document.getElementById('thing').onclick = myFunction(); 

最后,清单文件:

{ 
    "name": "Hello World!", 
    "version": "1.0", 
    "manifest_version": 2, 
    "description": "My first Chrome extension.", 
    "browser_action": { 
    "default_icon": "shark.png", 
    "default_popup": "popup.html" 
    } 
} 

当我加载此扩展然后点击扩展程序,它会显示一个直接显示“1”的扩展窗口,而不是“单击按钮之前的消息”。然后,当我尝试点击按钮时,没有任何反应 - 也就是说,文本保持为1,并且不会像应该那样增加。

非常感谢你!

回答

2

试试这个:

JS:

window.onload = function() { 
    var a =0; 
    function myFunction() 
    { 
     a= a +1; 
     document.getElementById('demo').textContent=a; 
    } 
    document.getElementById('thing').onclick = myFunction; 
} 

HTML

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript" src="popup.js"></script> 
</head> 
<body> 
<p id="demo">Before clicking button</p> 
<button type="button" id="thing">Pls work</button> 
</body> 
</html> 
+0

非常感谢你!那正是我需要的! – dizzyshark

+0

如果它适合您的需求,您可以投票回答并将问题设置为已回答。 – csanonymus

0

需要改变唯一想到的是

document.getElementById('thing').onclick = myFunction(); 

document.getElementById('thing').onclick = myFunction; 

第一次执行函数,而不是设置onclick事件执行的函数。