网页上失败的javascript会导致所有其他脚本失败
Can failing javascript on a web page cause all other scripts to fail?
我怀疑我们页面上的第三方分析脚本导致我们的Google Adwords转换脚本(页面稍后)无法运行,因为前面提到的分析无法加载外部资源。
在这种情况下,web浏览器的标准行为是什么?即使在单独的标记中,后续脚本也会失败运行吗?
如果有多个脚本标记,则每个标记都可能单独失败,而不会影响其他标记。
但是:
- 如果某些执行的脚本修改了网页,这可能会导致其他脚本因您所做的更改而失败
- 创建名称冲突的全局变量也可能会带来麻烦
编辑: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)
- 主显节2.22(FreeBSD)
- Icewasel 3.5.16(Debian)
- Chrome 1.0.154.59+(Debian/Win 2008)
- MSIE 9.0+(赢得2008)
- Flock 0.8+(Win 2000/2008/XP)
- Lunascape 6.7(2003年获胜)
- Camino 2.1.2(操作系统X 10)
- Avant 8.02+(Win 2003/2008/XP)
- iCab 5.0(操作系统X 10)
- OmniWeb 622(操作系统X 10)
- Safari 3.2.3+(操作系统X 10)
- 不锈钢0.8(OS X 10)
- Maxthon 3.4.2(赢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(赢得2008)***
- Chrome 18.0.1025.168(Ubuntu 12.04 LTE)
- SeaMonkey 2.12(Ubuntu 12.04 LTE)
***窗口停止执行:
Syntax Error
Do you want to continue running scripts on this page?
[ Yes | No ]
在IE的某些版本中,我经常遇到JS错误,导致整个引擎停止加载任何进一步的源(在不同的文件中,因此在不同的标签中)。我没有具体的知识,但我认为这可能取决于浏览器和浏览器的设置。我的实际经验是,这种情况肯定会发生,并且修复指示的错误可以修复完全不相关的代码。
相关文章:
- 如何添加浮动和非浮动,其他
- 与其他库的jQuery.noConflict()
- 播放当前视频时如何停止其他视频?JavaScript
- 剑道UI内联编辑:如何在点击其他按钮时隐藏按钮
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 网页上失败的javascript会导致所有其他脚本失败
- 当其他解析器认为意外的令牌有效时,json.parse会失败
- 我用脚本创建了一个按钮.我可以通过点击按钮调用其他函数吗?我这样做,但失败了
- 在第一个服务器验证失败响应上中止其他上传
- jQuery: $.when 延迟的 AJAX 调用 — 一个失败的调用会取消其他调用
- jquery.ajax代码,在firefox中工作,但在所有其他浏览器中都失败
- 循环使用Ajax的函数.仅在IE中失败.其他浏览器都能正常工作
- 多个AJAX请求只有第一个成功,其他失败
- Javascript 正则表达式匹配一些字符串,但在其他看似相同的字符串上失败
- Insertbefore()在循环中只添加第一行,在其他行上失败
- 将XMLhttpRequest转换为函数失败:异步或其他
- 如何仅在所有其他事件处理程序失败时调用主体标记上的事件处理程序
- moment.js作为AMD模块加载时静默失败.其他模块都没问题
- Jquery$.ajax()调用将具有其他参数的关联数组传递给MVC控制器失败
- 如果在第一次回发时验证失败,则无法进行其他回发