奇怪的是代码可以工作,但在某一行以下什么都不会工作,甚至没有警报,并且变量会丢失值!
代码非常简单:
// retrieving scroll position from a hidden text input<br>
var scrollPos = document.getElementById("scrollPosition").value;
// at this point scrollPos value is a certain number :)
// so i'm successfully able to change the HREF accordingly! :)<br>
document.getElementById("page1").href = "page1.php?pos="+scrollPos;<br>
document.getElementById("page2").href = "page2.php?pos="+scrollPos;<br>
document.getElementById("page3").href = "page3.php?pos="+scrollPos; // same value to all!
document.getElementById("page4").href = "page4.php?pos="+scrollPos;<br>
// at some weird point scrollPos loses its value! :(
实际上,在故障点之后什么都不起作用,甚至没有警报(“测试”)!
最佳答案
如果调用 document.getElementById("something")
,并且页面上没有 id 为 "something"
的元素,Javascript 将返回 null
。如果您随后尝试访问 null
的 href
属性,Javascript 将引发异常并停止所有处理。
您可以在浏览器中打开 Javascript 控制台来查看错误消息,例如 TypeError: Cannot set property 'href' of null
。
您可以执行以下操作来避免该错误并避免对一般页数进行硬编码:
var page, elem;
for (page = 1; elem = document.getElement("page"+page); ++page) {
elem.href = "page" + page + ".php?pos=" + scrollPos;
}
关于javascript 仅在代码中的某一行以下停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15013416/