我有一个包含JS文件的HTML页面的代码如下。函数d()收到24个字符的字符串,包括3个不可打印的字符(ASCII 005),并计算包含多少个字符。此号码显示警报()。Internet Explorer中Javascript功能缺失的非打印字符
- 谷歌浏览器:正确显示24作为结果。
- 谷歌浏览器(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 2012-03-11 11:22:15
谢谢。我做了,问题在那里。我更新了问题的结果。 – Arturo 2012-03-11 12:51:40
嗯。你试图逃脱那些chars?即把它们作为'\ x05'或'\ u0005'。另外,请添加问题,您使用的是哪个版本的IE。 – kirilloid 2012-03-11 13:04:13