警报未出现在浏览器扩展的弹出窗口中.html

Alert not appearing in popup.html of chrome extension

本文关键字:窗口 扩展 html 浏览器      更新时间:2023-09-26

我对chrome扩展程序仍然很陌生,只是在测试一下。现在我有一个弹出窗口.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>

有什么建议吗?

编辑:我什至在正文标签中加载了警报,以查看警报是否会在那里打开,但它没有。在弹出窗口中.js我在 window.onload 上打开了一个警报,但是它有效。

该函数在返回 false 后停止。在语句末尾输入 return false,则警报应该可以正常工作。或者你可以把它拿出来。

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

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

内联 JavaScript 不会被执行

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

来源在这里

这也可能是你的问题:内联脚本不适用于"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://*/*"
  ]
}

无论如何..最好在弹出窗口中处理操作.js,但首先,将弹出窗口中的按钮属性更改为以下内容.html:<button type="button">Login</button>

弹出窗口.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>

我希望,这是有用的。问候吉姆..