JavaScript错误

时间:2020-03-06 14:31:03  来源:igfitidea点击:

我在显示页面时遇到JS错误:未指定任何具体内容,但似乎将其抛出的行。当查看页面的源代码时,我看到以下脚本中引发了错误,但是我不明白为什么!这只是关于加载图像!

<SCRIPT language=JavaScript>
<!--
function newImage(arg) {
    var rslt = new Image();
    rslt.src = arg;
    return rslt;
}
function changeImages(a, b) {
    a.src = b;
}
newImage("\/_layouts\/images\/icon1.gif");
newImage("\/_layouts\/images\/icon2.gif");
// -->
</SCRIPT>

我收到的错误是单击页面上的下拉上下文菜单中的以下行时出现的:

newImage("\/_layouts\/images\/icon1.gif");
The object doesn't accept this property or method
  Code: 0

我真的不知道会发生什么...这里可能会发生什么提示?

解决方案

使用" around"属性编写适当的xml。

<script type="text/javascript">
function newImage(arg) {
    var rslt = new Image();
    rslt.src = arg;
    return rslt;
}
function changeImages(a, b) {
    a.src =     b;
}
newImage("/_layouts/images/icon1.gif");
newImage("/_layouts/images/icon2.gif");
</script>

脚本块应该不是:

<script type="text/javascript">

对于初学者,请使用以下命令启动脚本块

<script type="text/javascript">

不是

<script language=JavaScript>

那可能不是我们问题的根源,但是由于我们看不到脚本,因此我们可以提供所有这些。

我们是否尝试过将脚本加载到JS调试器(如Aptana)或者Firefox插件(如Firebug)中?

我们可能需要使用Java调试器的帮助。我从来没有想过如何使IE的各种调试器正常工作,所以如果我们使用IE,我将无济于事。

如果我们使用的是Firefox或者可以使用Firefox,请确保我们具有"工具/ Javascript调试器"命令。 (如果没有,请重新安装它并确保启用该选项。)接下来,打开调试器,重新运行问题页面,然后查看出现的情况。

我们为什么要转义正斜杠。没必要两行应为:

newImage("/_layouts/images/icon1.gif");
newImage("/_layouts/images/icon2.gif");

我们如何称呼changeImages?似乎我们没有保存对newImage返回的图像的引用。我们可能想要保存newImage的结果,并将其传递给changeImages例程。然后changeImages应该看起来像这样:

function changeImages(a, b) {
    a.src = b.src;
}

我们可能还需要确保在调用changeImages之前已完成加载图像。

我们已经发布了引发错误的例程,而没有发布错误或者向我们展示如何调用该错误。如果没有发布的答案可以解决问题,那么请发布一些有关如何调用该方法,错误发生在哪一行以及错误消息是什么的详细信息。

使用有限的信息很难回答问题:

  • 我们没有显示完整的脚本
  • 我们从未说过确切的错误消息是什么,甚至是什么浏览器都在给出错误信息。
  • 错误应该来自哪个行号?

如果我们还没有的话,建议我们在firefox中使用Firebug来调试javascript。 IE往往会给出虚假的行号。

就像其他人已经说过的那样,不建议使用脚本标签的language属性。

我们萤火虫进行调试。
http://www.mozilla.com/zh-CN/products/download.html?product=firefox-3.0.10&os=win&lang=zh-CN
https://addons.mozilla.org/zh-CN/firefox/addon/1843

JSLint也是不错的资源。
http://www.jslint.com/

使用CDATA代替&lt;!-//->
http://www.w3schools.com/XML/xml_cdata.asp

<script type="text/javascript">
<![CDATA[
]]>
</script>