我想将外部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] 删除。
我来说两句