Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在有JS错误的页面上运行外部Javascript_Javascript_Jquery - Fatal编程技术网

在有JS错误的页面上运行外部Javascript

在有JS错误的页面上运行外部Javascript,javascript,jquery,Javascript,Jquery,我正在写一个页面聊天软件,我对这些外部JS问题比较陌生 我的问题是如何在外部页面上加载和运行JS,并在给定页面上出现任何JS错误之前忽略/运行JS 示例:我们的代码片段位于客户页面的页脚内。他们发布了一个对JS脚本的更新,他们胖手指了一些代码,它就坏了。现在我们的JS代码将不会加载 处理这个问题的最佳方法是什么 你不能。如果浏览器先前抛出错误,它将永远无法访问您的代码。你能做的最好的事情就是放一个标签来解释出了什么问题 如果您让客户将您的脚本标记放在头部(在他们的代码之前),并将其标记为asyn

我正在写一个页面聊天软件,我对这些外部JS问题比较陌生

我的问题是如何在外部页面上加载和运行JS,并在给定页面上出现任何JS错误之前忽略/运行JS

示例:我们的代码片段位于客户页面的页脚内。他们发布了一个对JS脚本的更新,他们胖手指了一些代码,它就坏了。现在我们的JS代码将不会加载


处理这个问题的最佳方法是什么

你不能。如果浏览器先前抛出错误,它将永远无法访问您的代码。你能做的最好的事情就是放一个
标签来解释出了什么问题

如果您让客户将您的脚本标记放在头部(在他们的代码之前),并将其标记为async,它可能仍然会运行,但我不依赖它。

为您的脚本使用单独的
元素。(尽管他们将在共享环境中这样做)


如果您依赖于它们的脚本是否成功运行(例如,为您提供DOM中的函数或元素),那么您需要在使用它们之前进行防御性编程和测试。如何处理这些错误取决于您自己,您可以替换自己的替换项,抛出自己的错误,等等。

duplicate:如果它是一个单独的脚本标记(正如您最后一段所暗示的),那么您的第一个语句就不正确。在中放入
元素不会有帮助,因为如果不支持脚本,而不是脚本出错,则会显示该元素。好吧,noscript这件事对我来说有点像大脑放屁。但是,单独的脚本标记不能保证以后的脚本在所有情况下都会运行。特别是,旧版本的IE可以并且将破坏整个页面。基本上,此时脚本是动态生成的,如下所示:
var hover=(((“https:==document.location.protocol)?“https://:”http://“;write(unescape(“%3Cscript src=”+host+“dev.site.com/script.js”type='text/javascript“%3E%3C/script%3E”)问题似乎在于,如果他们在网站的页脚中添加了此内容,并且在出现错误之前编写了脚本,那么一些现有的AJAX请求似乎不会触发。