0

私は chrome-extension/java スクリプト開発の初心者で、次の演習で行き詰っています。

ボタンとテキストボックスでポップアップを作成しました。送信ボタンが押されたときにテキストボックスの値をアラートに渡したいと思いました。これまでのところ、次のコードがあります。

popup.html

<div id="popup"></div>
<form name="q">
    <input name="query" id="userQuery" type="text" />
    <button id="button1">Submit</button>
    <!-- <input type="button" name="button" value="query" /> -->
</form>

popup.js

document.addEventListener('DOMContentLoaded', function () {
    console.log(document.getElementById('userQuery'));
    document.getElementById('button1').addEventListener('click', myAlert(document.getElementById('userQuery')));
 });

function myAlert(query){
    alert(query.value)
}

ただし、query.value として「null」を取得するため、アラートは空になります。また、ポップアップの拡張機能をクリックすると、アラートも表示されることに気付きました。理由がわかりません。「クリック」と「オンクリック」の両方を使用しましたが、同じ問題が発生します。

ヒントやヘルプをいただければ幸いです。

4

2 に答える 2

0

それを行う1つの方法:

document.getElementById('button1').addEventListener('click', function() { myAlert(document.getElementById('userQuery')); });

コードでは、が呼び出さmyAlert(document.getElementById('userQuery'))れたときに式が評価されます。addEventListenerそのため、ページの読み込み時に空白のアラートが表示されます。代わりに、クリック イベントが発生したときに実行される関数を渡す必要があります。

于 2013-05-31T20:36:28.913 に答える