2016-09-14 3 views
-1

私はonclickイベントに対応するJavascript関数のソースコードを取得しようとしています。 onclick関数の中に一重引用符( ')があるとエラーが発生します。 次のサンプルコードは、未定義のプロパティ 'toString'を読み取ることができません(onclick.toString())

<html> 
    <head> 
     <script language="JavaScript" type="text/javascript"> 
      function selectedInputChange(input, mode, auth) { 
      } 
      function onClickToString() { 
       try { 
        document.getElementById('demo').innerHTML = document.getElementById('radioSelect').onclick.toString(); 
       } 
       catch(err) { 
        document.getElementById("demo").innerHTML = err.message; 
       } 
      } 
     </script> 
    </head> 
    <body> 
     <h1>My First JavaScript</h1> 
     <input type="radio" id="radioSelect" onclick="selectedInputChange('Some input with ' in it')"/> 
     <button type="button" onclick="onClickToString()">Click Here</button> 
     <p id="demo"></p> 
    </body> 
</html> 

その後、私は適切な出力を取得していますが、存在する場合、単一引用符は、私が

プロパティを読み取ることができません「のtoStringを取得していなし、単一引用符が存在した場合'of undefined

エラー応答、一重引用符があっても文字列を取得するにはどうすればよいですか?

編集 注:私は、HTMLコンテンツを制御することはできません、私は単に私に上記のHTMLソースを与える、IFRAME内のWebページをロードしています。 コメントの1つにつき、それは誤字ではありません。

+0

あなたは、このようにハンドラをバインドさを取得することはできません。 – passion

+1

これは単なる入力ミスで、バックスラッシュがありません。 –

+0

いいえ、コンテンツ全体がiframeの内側にあり、私たちはそれを制御できません。 – Vignesh

答えて

0

について

document.getElementById('radioSelect').getAttribute("onclick"); 

この属性は無効のJavaScript(それに構文エラーとJavaScriptが)含まれています

// JavaScript string ends here ---------------v 
onclick="selectedInputChange('Some input with ' in it')" 
// So this is a syntax error ------------------^^^^^^^^ 

あなたはそれに含まれる単一引用符にバックスラッシュが必要です。

onclick="selectedInputChange('Some input with \' in it')" 

作品:

function selectedInputChange() { 
 
    document.getElementById('demo').innerHTML = document.getElementById('radioSelect').onclick.toString(); 
 
}
<input type="radio" id="radioSelect" onclick="selectedInputChange('Some input with \' in it')"/> 
 
<p id="demo"></p>

関連する問題