网页上的javascript失败会导致所有其他脚本失败吗?

时间:2012-09-11 11:09:44

标签: javascript

我怀疑我们网页上的第三方分析脚本导致我们的Google Adwords转换脚本(页面稍后部分)无法在前面提到的分析无法加载外部资源的情况下运行。

此方案中Web浏览器的标准行为是什么?即使在单独的标记中,后续脚本也无法运行吗?

2 个答案:

答案 0 :(得分:2)

如果您有多个脚本标记,则每个标记可能会自行失败而不会影响其他标记。

但是:

  • 如果某些已执行的脚本修改了网页,这可能会导致其他脚本因您所做的更改而失败
  • 创建名称冲突的全局变量也可能会造成麻烦!

<小时/> 编辑:在Opera中测试:

<html>
  <head>
    <script>=;</script>
    <script>alert("Hello!");</script>
  </head>
</html>

此代码段会产生错误:

Inline script compilation
Syntax error at line 1 while loading: expected expression, got '='

但它仍会显示:

Hello!

<小时/> EDIT²:所以,我上传了以下测试代码:

<html>
    <body id="content" bgColor="red">
        <script>?=;</script>
        <script>document.getElementById("content").bgColor = "green";</script>
    </body>
</html>

并通过Browsershots.org执行,所以我可以看到没有开枪的结果;)

工作:

  • Firefox 1.5+(XP / Ubuntu / Debian / FreeBSD)
  • Galeon 2.0.6(Debian)
  • SeaMonkey 1.1.15+(Debian / Win 2008 / XP)
  • Kazehakase 0.5.4(Debian / FreeBSD)
  • Iceape 1.1.13+(Debian)
  • Konqueror 3.5+(Debian / FreeBSD)
  • Opera 9.64+(FreeBSD)
  • Epiphany 2.22(FreeBSD)
  • Icewasel 3.5.16(Debian)
  • Chrome 1.0.154.59+(Debian / Win 2008)
  • MSIE 9.0+(Win 2008)
  • Flock 0.8+(Win 2000/2008 / XP)
  • Lunascape 6.7(Win 2003)
  • Camino 2.1.2(OS X 10)
  • Avant 8.02+(Win 2003/2008 / XP)
  • iCab 5.0(OS X 10)
  • OmniWeb 622(OS X 10)
  • Safari 3.2.3+(OS X 10)
  • 不锈钢0.8(OS X 10)
  • Maxthon 3.4.2(Win 8)
  • Navigator 9(XP)
  • Netscape 8.1.3(XP)

+ 表示测试中包含的所有后续版本均已成功,除了下面列出的版本

不工作

  • Dillo 0.8.6; 2.0; 3.0.2(Debian)
  • Lynx 2.8.8(Gentoo):D
  • MSIE 4.01(XP)
  • MSIE 5.5; 6.0; 7.0; 8.0(Win 2008)***
  • Chrome 18.0.1025.168(Ubuntu 12.04 LTE)
  • SeaMonkey 2.12(Ubuntu 12.04 LTE)

*** Window停止执行:

Syntax Error
Do you want to continue running scripts on this page?
[ Yes | No ]

答案 1 :(得分:1)

我经常在IE的某些版本中遇到问题,其中JS错误似乎使整个引擎停止加载任何其他源(在不同的文件中,因此不同的标签)。我没有具体的知识,但我认为它可能会发生,具体取决于浏览器和浏览器的设置。我的实际经验是它确实发生了,修复指出的错误可以修复完全不相关的代码。