在 Chrome 扩展程序中的 popup.html 和 popup.js 之间的 JavaScript 函数(考虑来自 Background 的消息)

28 浏览
0 Comments

在 Chrome 扩展程序中的 popup.html 和 popup.js 之间的 JavaScript 函数(考虑来自 Background 的消息)

这个问题已经有答案了:

Vanilla JavaScript等效于jQuery的$.ready()——当页面/DOM准备就绪时调用函数[重复]

没有jQuery的$(document).ready等价物

在扩展中onclick或内联脚本无效

我想通过在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日
0
0 Comments

我建议使用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");
}

还值得注意的是,您可能需要将