在 Chrome 扩展程序中的 popup.html 和 popup.js 之间的 JavaScript 函数(考虑来自 Background 的消息)
在 Chrome 扩展程序中的 popup.html 和 popup.js 之间的 JavaScript 函数(考虑来自 Background 的消息)
这个问题已经有答案了:
我想通过在innerHTML中点击按钮来执行Chrome扩展中的函数(在popup.js中)。
我的popup.html中的代码如下:
我的popup.js中的代码如下:
chrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) { if (msg.text === 'results') { var panier_container = document.getElementById("panier_container"); var texte = ""; panier_container.innerHTML = texte; }); }); function toto() { alert("toto"); }
当我执行代码时,我能看到按钮\"TOTO\",但是当我点击按钮时,没有任何反应。在chrome.runtime.onMessage.addListener(function(msg, sender, sendResponse) {
之外,该按钮会执行该函数。但是在里面不会。
admin 更改状态以发布 2023年5月21日
我建议使用JavaScript DOM函数来附加函数,而不是使用html onclick属性。Chrome扩展程序不允许在HTML中使用内联javascript,请参阅此SO问题和Chrome开发人员文档这里。如果您给按钮一个方便的句柄,比如一个id,并使用.addClickListener()
呢?
var panier_container = document.getElementById("panier_container"); var texte = ""; panier_container.innerHTML = texte; document.getElementById("totoButton").addEventListener("click", toto); function toto() { alert("toto"); }
还值得注意的是,您可能需要将标记移动到
的末尾,或者给它一个
async
属性,因为基于脚本标记的位置,#panier_container
可能还没有加载,可以参考这里的第一个答案解释浏览器如何解释脚本标记。