2014-03-29 123 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事件執行的函數。