警报未出现在chrome扩展程序的popup.html中

时间:2012-04-08 17:54:20

标签: javascript google-chrome google-chrome-extension

我对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上打开了一个警告,但是它确实有效。

2 个答案:

答案 0 :(得分:10)

返回false后,该函数停止。 在语句结束时返回false,然后您的警报应该有效。或者你可以把它拿出来。

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

更新 经过一番研究后,我发现了以下内容......

  

不会执行内联JavaScript

     

内联JavaScript以及危险的字符串到JavaScript方法(如eval)不会>被执行。该限制禁止内联块和内联事件处理程序&gt; (例如)。

Source here

答案 1 :(得分:4)

这也可能是您的问题: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插入{em> popup.js 上方 popup.html <head>标记中:

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

我希望,这很有用。关心吉姆..