0

我正在检查 JS 控制台,它帮助我解决了一些小问题,但我想知道这个警告是否值得严重担心?

这是给出错误的代码:

<script type="text/javascript"
src="https://www.safaviehhome.com/product_images/locations/js/jqgalscroll.js"></script>
<script src="https://www.safaviehhome.com/product_images/mainnav/stuHover.js"             type="text/javascript"></script>
<script>
function layerSetup(id,visibility){
if(document.getElementById){
this.obj = document.getElementById(id).style;
Uncaught TypeError: Cannot read property 'style' of null
Uncaught TypeError: Cannot read property 'style' of null
<!--Includes many more of the same "Cannot read property 'style' of null messages -->

this.obj.visibility = visibility;
return this.obj;}
else if(document.all){
this.obj = document.all[id].style;
this.obj.visibility = visibility;
return this.obj;}
else if(document.layers){
this.obj = document.layers[id];
this.obj.visibility = visibility;
return this.obj;}
}
function visVisible(param){
new layerSetup(param,'visible');
}

function visHidden(param){
new layerSetup(param,'hidden');
}</script>

我无法真正弄清楚为什么会发生这种情况,以及我是否应该担心,因为我们的地毯类别运行良好。任何人都可以提供任何见解吗?我很抱歉没有提供任何我自己的解释,但我没有写这个 JS 以前的同事做过,现在由我来调试他犯的每一个错误。这是一个学习过程,但我对此还是有些陌生..

4

2 回答 2

2

这可能有两个原因。

  1. 在页面的某处,该layerSetup函数null作为参数之一被调用。
  2. layerSetup页面上不存在具有传递给函数的 id 的元素。

在 Chrome 开发控制台中,您可以单击Pause on All Exceptions左下栏中带有暂停符号的按钮。这将帮助您确定传递给函数的参数是什么。

于 2012-06-04T19:50:13.553 回答
0

避免 document.all

http://www.javascripttoolbox.com/bestpractices/

http://simonwillison.net/2003/Aug/11/documentAll/

于 2012-06-04T19:49:32.943 回答