2013-04-08 57 views
1

我们如何知道我的应用程序用户是否阻止了任何未在我的服务器上分配的外部javascript,即在我的网站上jquery正在从jquery.org加载,如果用户阻止该网站,那么如何显示一条消息用户允许来自jquery.org的脚本。如何检测外部JavaScript是否已加载?

我发现这个事情是有stackoverflow.com当我阻止计算器的网站上显示我

“堆栈溢出,需要从另一个域, 这是阻止或无法加载外部JavaScript “。

消息,所以我的问题是我怎么能得到外部脚本的想法被成功加载或不成功?

在此先感谢。

回答

0

最简单的解决方案:在之后放置一些代码,它测试它引入的符号(例如jQuery)是否存在。

<script src="url-to-jquery"></script> 
<script> 
    if (!window.jQuery) { 
     alert('jQuery could not be loaded'); 
    } 
</script> 

但是,如果您有许多外部参考,这可能会变得单调乏味。在这种情况下,您可能希望构建资源加载器,如https://github.com/cujojs/curl

-1

用你的外部js执行一些操作。例如,让你的脚本添加特定类的身体:

<body class="js-file-1-loaded js-file-2-loaded ..."> 

这样,您可以随时查询天气的东西已被加载与否。

+0

我可以忍受downvoted,我可以看到为什么我的答案不是最好的,但谁downvotes应评论为什么其他开发人员应该可能避免这种解决方案。 – hurrtz 2016-11-07 10:40:38

0

您可以检查typeof任何在外部资源中定义的函数或变量。

如果一个网站需要jQuery,它从外部资源加载,只需运行该检查:

if (typeof jQuery === "undefined"){ 
    console.log("jQuery is not defined"); 
} 

把你的支票只是第一个使用jQuery之前。

2

除了答案之外,<script>元素还有onloadonerror等许多其他元素。 Here's有关浏览器兼容性的信息和here's有关如何使其在旧的IE中工作的问题。

相关问题