Javascript 不平衡树-JS错误
我正在开发一个应用程序,它使用循环来创建所需的输出;这里是从1号到50号。我使用for循环,并使用连接方法来显示循环数。但是浏览器中的调试器说我写了一个不平衡的树。 以下是错误: 使用document.write()编写了一个不平衡的树,导致重新解析来自网络的数据。更多信息 代码如下:Javascript 不平衡树-JS错误,javascript,Javascript,我正在开发一个应用程序,它使用循环来创建所需的输出;这里是从1号到50号。我使用for循环,并使用连接方法来显示循环数。但是浏览器中的调试器说我写了一个不平衡的树。 以下是错误: 使用document.write()编写了一个不平衡的树,导致重新解析来自网络的数据。更多信息 代码如下: <script type="text/javascript"> for(i=1;i<=50;i++){ document.write("<a href='page.html#"
<script type="text/javascript">
for(i=1;i<=50;i++){
document.write("<a href='page.html#"+i+">"+i+"</a>");
}
</script>
对于(i=1;i这是一个警告。它发生在Firefox4和更高版本中。
发件人:
然而,在Firefox 4和更高版本中,HTML解析器也会推测性地运行HTML树构造算法。好处是,当推测成功时,不需要重新分析已扫描脚本、样式表和图像的传入文件部分。缺点是推测失败时会损失更多的工作ls.
[…]
当document.write()
更改树生成器状态时,推测树生成失败,这样当解析了document.write()
插入的所有内容时,
标记后的推测状态不再有效。但是,只有document.write()的异常使用
制造麻烦。以下是要避免的事情:
[…]
不要写不平衡的树。document.write(“”;
不好。document.write(“”;
可以。
解决方案是编写缺少的单个结束报价
<script type="text/javascript">
for(i=1;i<=50;i++){
document.write("<a href='page.html#"+i+"'>"+i+"</a>");
}
</script>
对于(i=1;i你漏掉了一个引号
尝试使用以下命令运行:
for(i=1;i<=50;i++){
document.write("<a href='page.html#"+i+"'>"+i+"</a><br/>");
}
for(i=1;i即使您document.write(…)
一个平衡树,例如document.write('X')
,您仍然可以得到相同的错误消息
一种可能的解释是,您不是在html的主体中执行JS代码,而是在html的头部执行JS代码,编写一些无法在头部执行的内容
例如:
错:
<html>
<meta charset="UTF-8">
<script>
document.write('<span>X</span>');
</script>
</html>
文件。写('X');
好:
文件。写('X');
该消息似乎是由缺少一个结束报价引起的。
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<script>
document.write('<span>X</span>');
</script>
</body>
</html>