我从example复制了此代码。我已经读过100次了。
Array.prototype.map = function(fn) {
var r = [];
var l = this.length;
for(var i = 0; i < l; i++) {
r.push(fn(this[i]));
}
return r;
};
为什么Firefox说:
not well-formed
file:///some/path.html Line: 5
for(var i = 0; i < l; i++) {
-------------------^
更新
只有在为页面打开Firebug时才会显示错误。
答案 0 :(得分:9)
您在HTML页面中使用Javascript代码声称完全符合XHTML标准。因此,<
字符不能出现在Javascript中,因为它将被解释为XHTML标记的开头。
有很多方法可以解决这个问题。
您可以更改DOCTYPE
并使其不是XHTML
您可以将Javascript放在<![CDATA[
部分中
您可以将Javascript移动到单独的.js文件中
您可以使用<
和<
&
每次&
转义{{1}}。我不推荐这个选项;它会使你的代码不可读,并且几乎肯定不会在IE中运行。
答案 1 :(得分:1)
可能你的错误不在这段代码中,但是在它之上的某些东西会让错误涓涓细流。因此,不要在此代码中发现错误,请查看上面可能导致此错误的格式错误的HTML或javascript。
答案 2 :(得分:0)
适合我。请发布完整文件,并确保使用脚本标记。
我发布了一个validating pastebin file(Chetan的技术上无效),它可以和Firebug一起使用。所以我建议你回来一整页验证代码不起作用。
答案 3 :(得分:0)
如果我使用以下HTML和您的文本作为“test.js”,我在Firebug中也没有错误。
<html>
<head>
<script type="text/javascript" src="test.js"></script>
</head>
<body>
test
</body>
</html>