gpt4 book ai didi

javascript - onclick 或内联脚本在扩展中不起作用

转载 作者:行者123 更新时间:2023-11-28 06:45:33 25 4
gpt4 key购买 nike

这似乎是最简单的事情,但它就是行不通。在普通浏览器中,.html 和 .js 文件可以完美运行,但在 Chrome/Firefox 扩展中,onClick 函数无法执行其应有的功能。

.js 文件:

function hellYeah(text) {
document.getElementById("text-holder").innerHTML = text;
}

.html 文件:

<!doctype html>
<html>
<head>
<title>
Getting Started Extension's Popup
</title>
<script src="popup.js"></script>
</head>
<body>
<div id="text-holder">
ha
</div>
<br />
<a onClick=hellYeah("xxx")>
hyhy
</a>
</body>
</html>

所以基本上一旦用户点击“hyhy”,“ha”就应该变成“xxx”。再说一遍 - 它在浏览器中运行良好,但在扩展程序中不起作用。你知道为什么吗?以防万一我也附上了下面的manifest.json。

manifest.json:

{
"name": "My First Extension",
"version": "1.0",
"manifest_version": 2,
"description": "The first extension that I made.",
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"permissions": [
"http://api.flickr.com/"
]
}

最佳答案

Chrome 扩展程序不允许您使用内联 JavaScript ( documentation )。
Firefox WebExtensions ( documentation ) 也是如此。

您将必须执行类似的操作:

为链接分配一个 ID( <a onClick=hellYeah("xxx")> 变为 <a id="link"> ),并使用 addEventListener 来绑定(bind)事件。将以下内容放入您的popup.js中文件:

document.addEventListener('DOMContentLoaded', function() {
var link = document.getElementById('link');
// onClick's logic below:
link.addEventListener('click', function() {
hellYeah('xxx');
});
});

popup.js应作为单独的脚本文件加载:

<script src="popup.js"></script>

关于javascript - onclick 或内联脚本在扩展中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33444750/

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