我正在运行 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/