这似乎是最简单的事情,但它就是行不通。在普通浏览器中,.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。
清单.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 (文档 http://developer.chrome.com/extensions/contentSecurityPolicy.html#JSExecution).
Firefox WebExtensions 也是如此(文档 https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy#Inline_JavaScript).
你将不得不做类似的事情:
为链接分配一个 ID(<a onClick=hellYeah("xxx")>
变成<a id="link">
),并使用addEventListener https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener来绑定事件。将以下内容放入您的popup.js
file:
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>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)