我是Javascript初学者。
我正在学习浏览器对象模型。
然后,我收到了Chrome控制台的错误消息。
我的代码如下。
<html>
<head>
<title>
</title>
<meta charset="UTF-8" />
<script type="text/javascript">
function showLinks() {
showLinks_NOT_ERROR1();
showLinks_NOT_ERROR1();
showLinks_WANTED_BUT_ERROR();
}
function showLinks_NOT_ERROR1() {
console.log(document.links[0].href);
console.log(document.links[1].href);
}
function showLinks_NOT_ERROR2() {
alert(document.links[0].href);
alert(document.links[1].href);
}
function showLinks_NOT_ERROR3() {
document.write(document.links[0].href);
}
function showLinks_WANTED_BUT_ERROR() {
document.write(document.links[0].href);
document.write(document.links[1].href);
}
</script>
</head>
<body onload="showLinks();">
<a href="http://www.google.com">google</a>
<a href="http://www.yahoo.com">yahoo</a>
</body>
</html>
正如您在showLinks_NOT_ERROR3
中看到的那样,只有一个document.write(document.links[0].href);
没有错误,但有两个document.write(document.links[0].href); document.write(document.links[1].href);
有错误。
为什么会发生此错误?
答案 0 :(得分:0)
继续我的评论: 使用document.write时请务必注意:
'document.write()'用于写入文档流。
在已关闭的文档流上调用'document.write()'会自动调用document.open(),这将清除文档。
请参阅此帖中标记的正确答案: document.write clears page
<!DOCTYPE html>
<html>
<head><title>Test</title></head>
<body>
<a href="http://www.google.com">google</a>
<a href="http://www.yahoo.com">yahoo</a>
<script type="text/javascript">
function showLinks() {
showLinks_NOT_ERROR1();
showLinks_NOT_ERROR2();
showLinks_WANTED_BUT_ERROR();
}
function showLinks_NOT_ERROR1() {
console.log(document.links[0].href);
console.log(document.links[1].href);
}
function showLinks_NOT_ERROR2() {
alert(document.links[0].href);
alert(document.links[1].href);
}
function showLinks_NOT_ERROR3() {
document.write(document.links[0].href);
}
function showLinks_WANTED_BUT_ERROR() {
document.write(document.links[0].href);
document.write(document.links[1].href);
}
showLinks();
</script>
</body>
</html>
此代码应该适合您。这里showLinks函数在文档流关闭之前被调用。