如何检测外部javascript是否已加载?

如何检测外部javascript是否已加载?,javascript,Javascript,我们如何通过我的应用程序知道用户是否阻止了未在我的服务器上分配的任何外部javascript,即在我的网站上jquery正在从jquery.org加载,如果用户阻止了该网站,那么我如何向该用户显示允许来自jquery.org的脚本的消息 我发现,当我阻止stackoverflow时,stackoverflow.com网站上就有这些东西 “堆栈溢出需要来自另一个域的外部JavaScript, 已被阻止或加载失败。“ 消息,所以我的问题是如何知道外部脚本是否成功加载 提前感谢。最简单的解决方案:在外

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

我发现,当我阻止stackoverflow时,stackoverflow.com网站上就有这些东西

“堆栈溢出需要来自另一个域的外部JavaScript, 已被阻止或加载失败。“

消息,所以我的问题是如何知道外部脚本是否成功加载


提前感谢。

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


如果(!window.jQuery){
警报(“无法加载jQuery”);
}

但是,如果你有很多外部参考资料,这可能会变得单调乏味。在这种情况下,您可能希望构建一个资源加载器,例如。

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


如果(!window.jQuery){
警报(“无法加载jQuery”);
}

但是,如果你有很多外部参考资料,这可能会变得单调乏味。在这种情况下,您可能希望构建一个资源加载器,例如。

使用外部js执行一些操作。例如,让脚本将特定类添加到正文中:

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


这样,您就可以随时检查是否加载了某些内容。

使用外部js执行某些操作。例如,让脚本将特定类添加到正文中:

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


使用它,您可以随时检查是否加载了某些内容。

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

如果站点需要
jQuery
,并且它是从外部资源加载的,只需运行以下检查:

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

在第一次使用jQuery之前进行检查。

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

如果站点需要
jQuery
,并且它是从外部资源加载的,只需运行以下检查:

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

在第一次使用jQuery之前进行检查。

除了答案之外,
元素还有
onload
onerror
事件以及许多其他元素。关于浏览器兼容性的信息以及如何使其在旧IE中工作的问题。

除了答案之外,
元素还有
onload
onerror
事件以及许多其他元素。有关浏览器兼容性的信息以及如何在旧IE中工作的问题。

示例代码:

<script id="webfont-garamond-fallback" src="https://ajax.googleapis.com/ajax/libs/webfont/1.5.18/webfont.js" defer></script>
<script>
var webfont = document.querySelector('#webfont-garamond-fallback');
if (webfont !== null) {
  webfont.addEventListener('load', function () {
    WebFont.load({
      google: {
        families: ['EB Garamond:400,400italic']
      }
    });
  });
}
</script>

var webfont=document.querySelector(“#webfont-garamond fallback”);
如果(webfont!==null){
webfont.addEventListener('load',函数(){
WebFont.load({
谷歌:{
家族:['EB Garamond:400400Italic']
}
});
});
}
应适用于所有现代浏览器和>=IE8

示例代码:

<script id="webfont-garamond-fallback" src="https://ajax.googleapis.com/ajax/libs/webfont/1.5.18/webfont.js" defer></script>
<script>
var webfont = document.querySelector('#webfont-garamond-fallback');
if (webfont !== null) {
  webfont.addEventListener('load', function () {
    WebFont.load({
      google: {
        families: ['EB Garamond:400,400italic']
      }
    });
  });
}
</script>

var webfont=document.querySelector(“#webfont-garamond fallback”);
如果(webfont!==null){
webfont.addEventListener('load',函数(){
WebFont.load({
谷歌:{
家族:['EB Garamond:400400Italic']
}
});
});
}

应该适用于所有现代浏览器,并且>=IE8

我可以忍受被否决,我可以理解为什么我的答案不是最好的,但是被否决的人应该评论为什么其他开发人员可能应该避免这个解决方案。我可以忍受被否决,我可以理解为什么我的答案不是最好的,但是,无论谁投反对票,都应该评论为什么其他开发人员可能应该避免使用这种解决方案。