在我的页面正文中,我需要插入以下代码,这是AJAX调用的结果:
<p>Loading jQuery</p>
<script type='text/javascript' src='scripts/jquery/core/jquery-1.4.4.js'></script>
<p>Using jQuery</p>
<script type='text/javascript'>
$.ajax({
...
});
</script>我不能使用$.load(),因为文档已经加载,所以事件不会触发。
这安全吗?如果不是,如何确保jquery脚本在执行自定义生成的代码之前已经加载。
发布于 2011-09-05 13:46:05
相当安全。历史上,<script>标记是完全阻塞的,因此第二个<script>标记在前者已经完成解析/执行之前是不会遇到的。唯一的问题可能是“现代”浏览器倾向于异步和延迟加载脚本。因此,要确保订单是正确的,请按如下方式使用:
<p>Loading jQuery</p>
<script type='text/javascript' async=false defer=false src='scripts/jquery/core/jquery-1.4.4.js'></script>
<p>Using jQuery</p>
<script type='text/javascript'>
$.ajax({
...
});
</script>但是,使用动态脚本标记插入而不是将其作为HTML字符串推入DOM可能是一个更好的主意。会是同样的故事
var scr = document.createElement('script'),
head = document.head || document.getElementsByTagName('head')[0];
scr.src = 'scripts/jquery/core/jquery-1.4.4.js';
scr.async = false; // optionally
head.insertBefore(scr, head.firstChild);发布于 2017-03-28 17:43:42
向脚本文件中添加一个ID,以便您可以查询它。
<script id="hljs" async src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.0.0/highlight.min.js"></script>然后在JavaScript中向它添加一个负载侦听器
<script>
var script = document.querySelector('#hljs');
script.addEventListener('load', function() {
hljs.initHighlightingOnLoad();
});
</script>发布于 2019-11-25 23:03:50
const jsScript = document.createElement('script')
jsScript.src =
'https://coolJavascript.js'
document.body.appendChild(jsScript)
jsScript.addEventListener('load', () => {
doSomethingNow()
})将在动态添加脚本后加载
https://stackoverflow.com/questions/7308908
复制相似问题