2

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

在这种情况下,Web 浏览器的标准行为是什么?即使在单独的标签中,后续脚本也会无法运行吗?

4

2 回答 2

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 执行它,所以我可以在不打开镜头的情况下看到结果;)

在职的:

  • 火狐 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)
  • 歌剧 9.64+ (FreeBSD)
  • 顿悟 2.22 (FreeBSD)
  • Icewasel 3.5.16 (Debian)
  • Chrome 1.0.154.59+ (Debian / Win 2008)
  • MSIE 9.0+ (Win 2008)
  • 群 0.8+ (Win 2000 / 2008 / XP)
  • Lunascape 6.7(赢 2003)
  • 卡米诺 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)
  • 傲游 3.4.2 (Win 8)
  • 导航器 9 (XP)
  • 网景 8.1.3 (XP)

A +表示它在测试中包含的所有以下版本上都成功,除了下面列出的版本

不工作

  • 迪洛 0.8.6; 2.0;3.0.2 (Debian)
  • 山猫 2.8.8 (Gentoo) :D
  • MSIE 4.01 (XP)
  • MSIE 5.5;6.0;7.0;8.0(赢 2008)***
  • Chrome 18.0.1025.168(Ubuntu 12.04 LTE)
  • 海猴 2.12 (Ubuntu 12.04 LTE)

*** 窗口停止执行:

Syntax Error
Do you want to continue running scripts on this page?
[ Yes | No ]
于 2012-09-11T11:12:14.740 回答
1

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

于 2012-09-11T11:18:32.080 回答