仅在加载延迟的Javascript外部文件后才执行Javascript?

戴夫

我想将外部Javascript文件的加载推迟到页面加载完成为止(如果这些外部资源无法加载,我也不想阻止渲染)。所以我有这条线

<script type="text/javascript" src=“//external.otherdomain.com/path/js/myresoures.js" defer></script>

但是,当此文件最终加载时,我要运行以下…

<script type="text/javascript">_satellite.pageBottom();</script>

但是,按原样,以上操作可能会在脚本加载之前运行。仅在加载远程资源后,如何运行以上(或任何)Javascript?请记住,如果外部资源没有加载(例如,它超时),那么我就不想运行Javascript。

谢谢-戴夫

文尼

这可以通过onload函数来实现。

您可以动态地加载每个对象...此示例是从MDN直接提取的它将在调用脚本上方插入您的外部资源,importScript()然后在加载后启动回调。

sSrc=您的外部脚本,fOnload=回调

function importScript (sSrc, fOnload) {
  var oScript = document.createElement("script");
  oScript.type = "text\/javascript";
  oScript.defer = true;
  if (fOnload) { oScript.onload = fOnload; }
      document.currentScript.parentNode.insertBefore(oScript, document.currentScript);
  oScript.src = sSrc;
}

用法:

importScript("//external.otherdomain.com/path/js/myresoures.js", function () { _satellite.pageBottom(); });

或者如果jQuery是一个选项,则使用.getScript()像这样:

$.getScript( "//external.otherdomain.com/path/js/myresoures.js", function () {_satellite.pageBottom();} );

折叠<script>后,可以在页面末尾使用这些选项中的任何一个,以确保首先加载整个DOM。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

执行后延迟JavaScript

仅在特定URL时才在全局文件中执行Javascript

仅在触发模态后才延迟加载iframe

仅在Bootstrap模式打开后才延迟加载映像

文件加载后如何执行javascript文件

仅在前一个函数完全执行后才执行 Javascript 函数

pytest:仅在加载了特定灯具后才执行安装代码

在Meteor中,如何仅在用户使用特定外部服务登录时才加载JavaScript?

如何确保仅在异步/等待数据库插入成功后才执行某些JavaScript代码?

直到循环后才执行Javascript函数

仅在使用Python延迟加载数据后,才通过迭代刮擦表吗?

如何从后台代码执行javascript函数,但仅在页面加载后执行

在 WebView 中加载 HTML 文件后执行 JavaScript 指令

Javascript未立即执行,延迟到页面加载后一秒钟

Javascript:如何添加在加载JavaScript文件“异步延迟”后通知的回调

仅在CKEditor初始化后才运行JavaScript函数

Rails:仅在CSS加载后运行Javascript

外部javascript和加载的文件

javascript - JSON 文件仅在键存在时才使用值

RxJS-仅在特定的空闲延迟后才发射

加载表后调用外部JavaScript

是否可以等到所有JavaScript文件加载完毕后再执行JavaScript代码?

页面加载完成后执行javascript

页面加载后如何使JavaScript执行?

加载Ajax后如何执行JavaScript?

加载指令模板后执行Javascript

延迟加载 javascript 脚本?

JavaScript页面加载延迟

延迟执行Javascript