chrome扩展弹出无法找到元素的ID
chrome extension popup cannot find element by ID
我知道类似的问题已经被问过很多次了,但我还没有找到一个解决方案。我的问题很简单。我要做的就是在popup。html上测试actions,这里,我在popup上有一个click按钮,点击它时,我想显示alert。但是什么也没发生。不是寻找元素。我不明白这是怎么回事。
manefest.json
{
"name": "test",
"version": "1.0",
"description": "test",
"manifest_version":2,
"browser_action": {
"default_icon": "logo.png",
"default_popup":"popup.html"
},
"permissions": [
"tabs",
"http://*/*",
"notifications"
]
}
popup.html
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="popup.js"></script>
</head>
<body>
<button id='btn'>click</button>
</body>
</html>
popup.js
$('#btn').click(function (){
alert("test");
};
问题是你的代码在<script>
标签被读取后立即执行,即在你的元素存在于DOM之前。
用$(document).ready()
包起来就可以了:
$(document).ready(function() {
/* your code */
});
对于非jquery解决方案,将其封装在DOMContentLoaded
listener:
document.addEventListener("DOMContentLoaded", function() {
/* your code */
});
最后,您可以简单地将<script>
标记移动到<body>
的末尾,但这是一个不太健壮的解决方案。
我相信你的pop - up.js语法是错误的
$('#btn').click(function (){
alert("test");
};
应为
$('#btn').click(function (){
alert("test");
});
好像缺少一个paran;
相关文章:
- 选择不带选择器的元素,仅使用元素ID
- 从元素id中获取值,而不是从javascript中的名称中获取值
- 如何将第二个元素id注入到网站元素中
- 将 JavaScript 元素 ID 传递给 PHP 或 Form Variable
- 如何在 javascript 中将表单中的元素 id 值作为数组传递
- 用于指定元素 ID 的正确 JavaScript 语法是什么
- 如何从 jQuery 中的 ajax 函数中的类访问元素 ID
- JavaScript获取多个已知元素ID
- 使用ng repeat时元素ID重复
- 在使用onblur进行输入评估时,是否可以获得单击对象的元素id
- JQuery通过变量标识元素id:多个表行
- 当元素ID包含美元符号时,Javascript中的getElementByid.当ID包含美元符号时,
- 我得到未捕获的类型错误:无法读取属性'选项'即使定义了元素id,也为null
- 元素id未被接受为函数参数
- 使用jquery获取类元素id
- 如何在没有任何元素id的情况下检索表中的文本内容
- jquery按类确定元素id
- 获取元素ID并传递到函数中
- 使用jquery获取元素id
- JavaScript文档.getElementById(“id”)和元素id属性