0

一部のユーザーのアクションの結果としてボタンをポップアップページに表示するChrome拡張機能を作成しています(たとえば、ユーザーがポップアップページから私のサイトにログインした後)。 ドキュメントには、インラインJavaScriptは実行されないことが記載されており、JavaScriptを実装するための推奨される方法は次のとおりです。

document.addEventListener('DOMContentLoaded', function () {
 document.querySelector('#button1').addEventListener('click', clickHandler);
});

'button'がpopup.htmlのタグの場合。

ただし、ここに問題があります。前述のように、ページが読み込まれたときにボタンが表示されないようにします。を使用してボタンを追加して$("#some_div").append(<button id="button1">...<button>)からdocument.addEventListenerを呼び出そうとすると、元のpopup.htmlの一部ではないため、document.querySelectorは追加されたボタンを見つけられないようです(実際にはnullを返します)。

これまでのところ、私が考えた唯一の解決策は、ボタンを非表示としてpopup.htmlに追加し、必要に応じて表示するように設定することです。

他のアイデア(または、うまくいけば、私はすべて一緒に間違っています)は高く評価されます。

4

1 に答える 1

0

でボタンを作成し、の代わりにvar newButton = document.createElement('button')使用してみてください。次に、あなたはただ書くことができます。appendChildappendnewButton.addEventListener('click', clickHandler)

于 2012-11-24T09:47:57.033 に答える