2012-04-08 94 views
6

我對Chrome擴展還是很新的,只是測試了一些東西。 現在,我有一個popup.html,它帶有一個簡短的表單,我希望在單擊提交時創建警報。我不能爲了我的生活找出爲什麼它不起作用。Chrome擴展程序的popup.html中沒有出現警報

<!doctype html> 
<html> 
<head> 
<title>Test</title> 
<script type="text/javascript" src="popup.js"> 

</script> 
</head> 
<body onload="alert('open')"> 
<form> 
Username: <input type='text' id="username" name='username'></input> 
Password: <input type='password' id='password' /> 
      <button onclick="alert('test');return false;">Login</button> 
</form> 
</body> 
</html> 

有什麼建議嗎?

編輯:我甚至在body標籤中加載了一個onload,看看是否有警報會在那裏打開,但是沒有。在popup.js中,我在window.onload上打開了一個警報,但是它的工作原理。

回答

9

函數返回false後停止。 如果在聲明結束時返回false,那麼您的警報應該起作用。或者你可以把它拿出來。

<button onclick="alert('test')">Login</button> 

更新 經過一番研究,我發現了以下...

聯JavaScript將不被執行

內嵌的JavaScript,以及危險字符串到JavaScript像eval這樣的方法不會被執行。此限制禁止嵌入塊和嵌入式事件處理程序>(例如)。

Source here

+0

嗯我改變了,因爲它是有道理的,但警報仍然沒有出現。我甚至在身上添加了一個onLoad,以查看是否會發生警報,​​但它不會:/ – 2012-04-08 18:08:34

+0

確保您在更改時重新加載擴展名。您可以通過在chrome中轉到chrome:// settings/extensions#並點擊擴展的名稱來擴展以獲得更多選項。 – 2012-04-08 18:19:41

+0

啊我明白了!好吧,我把所有東西都移動到了一個單獨的js文件中,並使用addeventlisteners,它完美地工作。謝謝!! – 2012-04-08 18:30:57

3

這可能是你的問題太多:inline scripts doesnt work with "manifest_version":2

所以,我測試,並與下面的清單,你的代碼工作

{ 
    "name": "test", 
    "version": "1.0", 
    "description": "test", 
    "manifest_version":1, 
    "browser_action": { 
    "default_icon": "images/padlock.png", 
    "default_popup":"html/popup.html" 
    }, 
    "permissions": [ 
    "tabs", 
    "http://*/*" 
    ] 
} 

反正..這將是更好地處理在popup.js行動,但首先,改變按鈕popup.html屬性如下:<button type="button">Login</button>

popup.js:

$(document).ready(function(){ 
    $(":button").click(function(){ 
     alert("test"); 
     //more code here... 
    }); 
}); 

記住要插入的jquery.js到您的<head>標籤,在popup.html,略高於popup.js

<head> 
<title>Test</title> 
<script type="text/javascript" src="../js/jquery.js"></script> 
<script type="text/javascript" src="../js/popup.js"></script> 
</head> 

我希望它有用。關心吉姆..

+0

欣賞你的努力,但我試着改變'manifest_version',似乎沒有爲我工作。 – 2017-11-09 14:39:03

相關問題