gpt4 book ai didi

javascript - chrome扩展弹出窗口无法通过ID找到元素

转载 作者:行者123 更新时间:2023-12-01 07:12:00 24 4
gpt4 key购买 nike

我知道类似的问题已经被问过很多次了,但我还没有找到适合我的解决方案。我的问题很简单。我想做的就是测试 popup.html 上的操作,因为在这里,我在弹出窗口上有一个单击按钮,当我单击它时,我想显示警报。但什么也没发生。它没有找到该元素。我不明白这里出了什么问题。

ma​​nefest.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 中听众:

document.addEventListener("DOMContentLoaded", function() {
/* your code */
});

最后,您只需移动 <script>标记到 <body> 的末尾,但这是一个不太稳健的解决方案。

关于javascript - chrome扩展弹出窗口无法通过ID找到元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25414963/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com