機能を実行しない.js内のボタンについては数日から問題があります。ここでChrome拡張機能:chrome.runtime.onMessage.addListener内の機能
popup.html内部の私のコードここ
<html>
<head>
<script src="popup.js"></script>
</head>
<body>
<div id="panier_container"> </div>
</body>
</html>
popup.js内部の私のコード:私は、コードを実行すると、私はポップアップ内のボタンを参照してください
chrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) {
//Message en provenance du background
if (msg.text === 'panier') {
var panier_container = document.getElementById("panier_container");
panier_container.innerHTML ="<button id=\"totoButton\"> Affiche TOTO </button>";
}
});
//Fonction toto
function toto() {
alert("toto");
}
document.addEventListener('DOMContentLoaded', function() {
document.getElementById("totoButton").addEventListener("click", toto);
});
しかし、私がボタンをクリックすると、何も起こりません。情報msg
は私background.js
から来ているが、私はpopup.jsすべての内部で、このコードを書いた場合、それは大丈夫だ場合:
var panier_container = document.getElementById("panier_container");
panier_container.innerHTML ="<button id=\"totoButton\"> Affiche TOTO </button>";
//Fonction toto
function toto() {
alert("toto");
}
document.addEventListener('DOMContentLoaded', function() {
document.getElementById("totoButton").addEventListener("click", toto);
});
このコードでは、私はボタンを見て、私がクリックすると、toto(関数が実行されている)が見えます。
なぜブールの内部にあるのですかchrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) {
ボタンはtoto機能を実行しませんか?
は、あなたの答え
ジェレミー
ポップアップにメッセージを送信するコードを表示できますか?つまり、どこにいても 'chrome.runtime.sendMessage'呼び出しを表示していないので、いつどのように呼び出すのかを知ることが重要です。どこにでも 'sendMessage'を呼び出さなければ、それが聞こうとしているイベント(メッセージの送信)は決して起こらないので、イベントリスナーが決して動かないことは全く例外です。あなたのコードのどこかに 'sendMessage'コールを表示していなければ、ポップアップが開いている間は実行されていません。 – apsillers
ええと、グローバルclickリスナーをdocument.bodyに添付し、event.target.idがtotoButtonであるかどうかを確認するだけです。 – wOxxOm
onMessageリスナ関数の中に 'function toto()'と 'addEventListener'コールを入れます**。それ以外の場合は、メッセージが受信される前に呼び出されます。 –