2016-10-05 16 views
0

イベントリスナー機能に問題があります。エラーは発生しません。私はビデオを聴いても、他のコードをコピーして貼り付けて動作させていますが、イベントリスナーを追加することは、ここでは動作しません。ここイベントリスナーを追加する

<!DOCTYPE html> 
<html> 
<head><title>Main page of a simple website</title> 
    <link rel="stylesheet" type="text/css" href="mstn.css"/> 
    <link href='https://fonts.googleapis.com/css?family=Josefin+Slab:100' rel='stylesheet' type='text/css'> 

</head> 
    <body> 
     <header> 
      <a href="https://www.google.com" target="_parent">click here to go to google</a> 
      <a href="victimclient.rar" download="victimclient.rar">here</a> 

     <p id="demo">testing testing testing </p> 
     <p>testing testing testing</p> 
     <h1>whats little g</h1> 
     <script type="text/javascript" src="checkthisout.js"> 
      y = document.getElementById("input").addEventListener("click", myFunction); 
     if(y){ 
      function myFunction() { 
       alert("hello world") 
      } 
     } 

     </script> 
     <input holder="password" value="replace here" id="input"/> 



    </body> 
+0

なぜ関数定義をif条件の中に入れますか?それは必要ではありません。 **イベントリスナーを追加すると、**関数**を定義する必要があります。そうしないと何も起こりません。 – evolutionxbox

答えて

1

<!DOCTYPE html> 
 
<html> 
 
<head><title>Main page of a simple website</title> 
 
    <link rel="stylesheet" type="text/css" href="mstn.css"/> 
 
    <link href='https://fonts.googleapis.com/css?family=Josefin+Slab:100' rel='stylesheet' type='text/css'> 
 

 
</head> 
 
    <body onload="init()"> 
 
     <header> 
 
      <a href="https://www.google.com" target="_parent">click here to go to google</a> 
 
      <a href="victimclient.rar" download="victimclient.rar">here</a> 
 

 
     <p id="demo">testing testing testing </p> 
 
     <p>testing testing testing</p> 
 
     <h1>whats little g</h1> 
 
     
 
     <input holder="password" value="replace here" id="input"/> 
 

 

 
     <script type="text/javascript"> 
 
      function init() { 
 
       document.getElementById("input").addEventListener("click", myFunction); 
 
      } 
 
      
 
      function myFunction() { 
 
       alert("hello world") 
 
      } 
 

 
     </script> 
 
    </body>

怒鳴る私のコードは、ソリューションです。 操作する前にDOMがロードされているのを待たなければなりません。 さらに、このscriptタグにはsrcという属性を設定することはできません。

+0

これはなぜ解決策ですか?あなたの解答を解説で広げてください。 – evolutionxbox

0

入力が生成される前にスクリプトが実行されている可能性があります。スクリプトを最後に置くか、Jqueryのdocument.ready関数を使用してください。

<!DOCTYPE html> 
<html> 
<head><title>Main page of a simple website</title> 
    <link rel="stylesheet" type="text/css" href="mstn.css"/> 
    <link href='https://fonts.googleapis.com/css?family=Josefin+Slab:100' rel='stylesheet' type='text/css'> 

</head> 
    <body> 
     <header> 
      <a href="https://www.google.com" target="_parent">click here to go to google</a> 
      <a href="victimclient.rar" download="victimclient.rar">here</a> 

     <p id="demo">testing testing testing </p> 
     <p>testing testing testing</p> 
     <h1>whats little g</h1> 

     <input holder="password" value="replace here" id="input"/> 

<script type="text/javascript" src="checkthisout.js"> 

      function myFunction() { 
       alert("hello world") 
      } 

      document.getElementById("input").addEventListener("click", myFunction); 




     </script> 

    </body> 
+0

jQueryを使用する理由質問にjQueryはありません。 – evolutionxbox

+0

それは単なる別の可能性です。私はその質問に答え、次にそれを行う別の方法を提供しました。 – xboxremote

+0

私は理解していますが、OPはタグとしてjqueryを入れていません。質問では質問しません。 – evolutionxbox

0

HTMLとスクリプト事項のご注文とその機能defination範囲がaddEventListnerレベルに利用できない「場合」の下にあるため、また、あなたは、(Y){}場合は内部定義された機能を持って傾けます。これを試してみてください:

<input holder="password" value="replace here" id="input1"/> 

     <script> 

     y = document.getElementById("input1").addEventListener("click", myFunction, false); 

    function myFunction() { 
       alert("hello world") 
      } 

     </script> 
関連する問題