javascript - JavaScript 问题会破坏浏览器吗?

标签 javascript google-website-optimizer

我正在运行 Google 网站优化工具,它执行客户端 cookie 检查以仅显示一次内容。

但是,当它们被 cookie 时,我收到一个 javascript 错误,该错误似乎并不致命,但我读到 1 个 js 错误就足以完全破坏 Internet Explorer。

有问题的代码行是 <script>utmx_section("Blah")</script>

该行由 Google 直接提供,但我收到未定义的错误。现在,它运行在页面的最底部,所以最坏的情况是 GA 不运行。

但是有什么危害呢?

<小时/>

编辑:我没有直接要求调试我的 JS,因为这个问题很深奥,并且可能是由于错误或错误的假设造成的。问题是忽视这个问题是否有危险。

我得到的错误是:“utmx_section 未定义”,即使提供相关函数的 JavaScript 已正确包含,并且它确实抛出错误的页面与不抛出错误的页面之间的唯一区别问题在于,在页面上运行了一些额外的 JQuery(由于检查 cookie 的条件),因此它不会引发错误。

进一步编辑:通过让 PHP 条件仅在需要时执行 utmx 行(即,在未 cookied 的用户上)来解决该问题。

最佳答案

大多数用户都关闭了 JavaScript 通知,这样他们就不会看到错误。在您的情况下,该错误不会“破坏浏览器”;它真正中断的地方是对该函数的后续调用以及该脚本 block 内该调用之后的任何代码:

utmx_section("Blah");
// later:
utmx_section("Correct"); <-- will not fire

和:

utmx_section("Blah"); 
var a = b; <-- will not fire
doStuff(); <-- will not fire

在 PHP 中解决这个问题是很困难的。只需添加一个条件即可。当查看全局变量是否存在时,您必须使用“window”:

if(window.utmx_section){
    utmx_section("Blah");
}

关于javascript - JavaScript 问题会破坏浏览器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3093683/

相关文章:

javascript - 如何使 ChaiJS 'expect' 函数在 NodeJS 'test' 文件夹内的所有文件中可用?

javascript - 从对象值检索图像 url - Angular JS

javascript - 在js函数中访问变量

javascript - GWO(谷歌网站优化器)的替代品?

javascript - 如何在 promise 解决时处理 promise ?

javascript - 跨源 XMLHttpRequest iFrame "Mini Browser"

html - 使用 Google 网站优化工具测试 Javascript?

optimization - 谷歌验证码和 youtube 嵌入的谷歌洞察工具错误

google-analytics - Google网站优化工具多版本测试未保存__utmx cookie?

asp.net - 将 ContentPlaceHolder 添加到 site.master