javascript - 防止 Javascript 在遇到错误时停止

标签 javascript jquery

我们的产品将脚本插入客户的网站,有点像实时聊天框。

通常,客户的网站有错误的 javascript 也会停止我们的代码(浏览器在遇到错误时停止执行)。有什么方法可以让我们的代码在控制台出现未定义方法或变量等错误时仍然执行?

感谢您的帮助。

最佳答案

简短的回答是你真的不能。

“解决方案”#1:您可以坚持让您的第 3 方代码先于其他任何人运行。在大多数情况下,这是不可能的,甚至是不可取的。

“解决方案”#2:您可以坚持让第一方工程师将所有第三方代码包装在 try/catch 中。 block 。但是,这个解决方案真的不能给你任何保证,因为 3rd 方库经常附加额外的 <script>标签到页面 - 这些不会属于 try/catch 的“管辖范围”包含创建此/这些标签的代码的范围。

“解决方案”#3:您可以完全在 <iframe> 范围内构建您的应用程序,从而完全避免了这个问题。不幸的是,即使您非常聪明,您也会很快遇到跨域违规、第 3 方 cookie 限制等问题。这很可能对您不起作用。

“解决方案”#4:您可以向您的客户解释该问题,并让他们要求其他第 3 方代码正常运行。我说这是一个“解决方案”,因为坦率地说,如果您的问题是如何避免完全这样做,它就不是您问题的“解决方案”。

不幸的是,选项 #4 是您最好的选择。如果您观察到其他第 3 方库以相同的方式“损坏”,这可能会有所帮助:您可以告诉您的客户“嘿,不只是我——X、Y 和 Z 也都‘损坏’了,因为"这可能会导致他们对有问题的代码施加压力,从而使网络成为所有相关人员更快乐的地方。

关于javascript - 防止 Javascript 在遇到错误时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10825992/

相关文章:

javascript - 如何在没有 "Requested unknown parameter"错误的情况下动态添加行

javascript - 除非有警报,否则功能无法正常工作

javascript - 如何将局部变量转换为全局、点或括号表示法?

javascript - JS SVG getCTM 和 setCTM?

javascript - jQuery - 将函数内的变量传递给另一个函数

javascript - Opera 和 Internet Explorer 中的 JQuery 安全错误

javascript - 无法使用 css3 为全屏 slider 设置 z-index

jquery - 淡入淡出背景图像

php - 如何将值从 json_encode 传递到 angularjs

javascript - 如何将文本框分成多个部分,使每个部分接受一个字母?