JSファイルを含むHTMLページの下にコードがあります。関数d()はの3つの出力不可能な文字(ASCII 005)を含む24文字の文字列を受け取り、含まれる文字の数を数えます。この番号はアラート()で表示されます。Internet ExplorerのJavascript機能で印刷できない文字がありません
- Google Chrome:は結果として24を正しく表示します。
- Google Chrome(JSデバッガ):は結果として24を正しく表示します。
- Internet Explorer 9:は結果として24を正しく表示します。
- Internet Explorer 9(JSデバッガー):は、21(24-3の印刷不可能)のみを表示します。
私は本当にこれがInternet Explorerで動作する必要があります。何か案は?知っているおかげ
test.htmlという
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>JavaScript Scripting</title>
</head>
<body>
<script type="text/javascript" charset="utf-8" src="test.js">
</script>
</body>
</html>
TEST.JS
function d(a){return a.length;};
document.write("<script language=\"Javascript\" charset=\"utf-8\">alert(".concat(d("a[NULL]lert(\"He[NULL]llo Worl[NULL]d\");")).concat(");</script>"));
文字列の長さだけを返してみませんか? – kirilloid
ありがとうございます。私はして問題はそこにあります。質問を更新しました。 – Arturo
Hmm。あなたはそれらの文字をエスケープしようとしましたか?私。それらを '\ x05'または' \ u0005'としてください。また、どのバージョンのIEを使用しているのかを質問に追加してください。 – kirilloid