如何等待document.write完成

穆罕默德·雷汉·赛义德

我正在尝试编写一些脚本后备代码,以便如果CDN中不提供jQuery和jQuery Validator时,我将加载本地版本。请注意,以下脚本位于单独的文件中,以支持内容安全策略(CSP)。

(window.jQuery || document.write('<script src="/js/jquery.js"><\/script>'));
($.validator || document.write('<script src="/js/jquery-validate.js"><\/script>'));

如果jQuery不可用,则会在文档末尾写入一个新的脚本标记,但下一行错误将指出$未定义。在执行下一行之前,如何等待文档写入完成加载文档?

ek

您应该利用的onload事件<script>代替ducoment.write,通过DOM操作将脚本标签添加到文档中:

var s = document.createElement('script');
s.onload = function() {
  // jQuery is now loaded and can be used
}
s.src = '/js/jquery.js';
document.getElementsByTagName('head')[0].appendChild(s);

更新:

您的问题“如何等待document.write”的答案是您不必这样做,因为它document.write是同步的。之后的下一行document.write仅在write方法完成写入后才执行。但是,如果您将<script>带有src属性标签写入文档,则资源(src指向)的加载将是异步的,并且将与下一条语句并写后完成后开始因为无法预先告知资源加载将花费多长时间,所以确保外部脚本中所有可用的唯一可行方法是onload事件。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何等待异步 AudioTrack.write 完成?

来自分类Dev

如何等待功能完成?

来自分类Dev

如何等待诺言完成

来自分类Dev

如何等待功能完成?

来自分类Dev

如何等待任务完成

来自分类Dev

如何等待并行Linq动作完成

来自分类Dev

AngularJS:如何等待$ resource完成?

来自分类Dev

我如何等待外部过程完成?

来自分类Dev

如何等待所有NSOperations完成?

来自分类Dev

Android如何等待AsyncTask完成

来自分类Dev

如何等待语音合成完成

来自分类Dev

如何等待,直到UploadStringAsync方法完成

来自分类Dev

如何等待webclient OpenReadAsync完成

来自分类Dev

如何等待IntentService完成其任务

来自分类Dev

Vuex:如何等待动作完成?

来自分类Dev

如何等待可观察对象完成?

来自分类Dev

如何等待NSXMLParserDelegate方法完成?

来自分类Dev

如何等待webclient OpenReadAsync完成

来自分类Dev

如何等待IntentService完成其任务

来自分类Dev

我如何等待文件下载完成

来自分类Dev

如何等待jQuery中的动画完成?

来自分类Dev

如何等待复制过程(cp)完成?

来自分类Dev

NodeJS如何等待多任务完成

来自分类Dev

如何等待语音合成完成

来自分类Dev

如何等待webview.post完成?

来自分类Dev

如何等待任务的完成及其继续?

来自分类Dev

如何等待线程在android中完成

来自分类Dev

如何等待异步完成 - NodeJs

来自分类Dev

如何等待任何工作线程的完成?