-1

ユーザー入力の前に実行されているこの JavaScript に問題があります。誰かがこれを修正するのを手伝ってくれますか?

テキストボックスとボタンを含む小さな html ページを作成しようとしているだけで、クリックすると URL が変更された新しいウィンドウが開きます。

<input type="text" name="enter" class="enter" value="" id="lolz" />
<button type="button" id="the_button">Count</button>

document.getElementById('open').addEventListener('click', myFunction());
function myFunction() {
  var button = document.getElementById("the_button");
  var siteid = document.getElementById('lolz').value
  button.onclick = count();

  function count() {
    window.location = "http://www.websiteimusing.com/" + siteid;
  }
 }

ここでコードを確認できます 実際にそのウェブサイトのコードから出力を生成するのはこれです

更新されたコード

document.getElementById('the_button').addEventListener('click', myFunction);
 function myFunction() {
   var button = document.getElementById("the_button");
   var siteid = document.getElementById('lolz').value
    button.onclick = count();

 function count() {
     window.location = "http://www.websiteimusing.com/" + siteid;
   }
  }
4

3 に答える 3

2

コードにidopenを持つ要素がないため、イベント リスナーを null に追加しようとしています。コンソールは同じことを教えてくれます:

Uncaught TypeError: Cannot call method 'addEventListener' of null

また、他のポスターが述べているように、イベントリスナー関数から括弧を必ず削除してください。

于 2013-07-16T04:41:04.907 に答える
2

への変更:

document.getElementById('open').addEventListener('click', myFunction);

関数名の後に付ける()と、その時にその関数を呼び出すという意味です。

于 2013-07-16T04:36:52.723 に答える
1

この行で

document.getElementById('open').addEventListener('click', myFunction());

を追加して関数を呼び出しています()

それを次のように変更します。

document.getElementById('open').addEventListener('click', myFunction);
于 2013-07-16T04:37:09.943 に答える