Our*_*rus 14
如果您已经知道如何检测您的标准,那么加载另一个脚本如下所示:
<head>
<!-- the usual head stuff goes here -->
<script>
// replace `criteria` with your actual criteria
if(criteria) {
const script = document.createElement('script');
script.id = '__script__id__';
script.type = 'text/javascript';
script.async = true;
script.src = '//abc.xyz./js/script.js';
document.head.append(script);
}
</script>
<!-- remaining scripts go here -->
<!-- injected script will end up here -->
</head>
检查条件,创建元素,设置其属性,将其添加到文档中。
我尝试寻找有关此机制的详细信息。我能找到的最好的是来自 MDN 关于脚本元素async
和defer
属性的主题:
这些属性的确切处理细节很复杂,涉及 HTML 的许多不同方面,因此分散在整个规范中。这些算法描述了核心思想,但它们依赖于 HTML、外部内容和XML中
<script>
开始和结束标记的解析规则;该方法的规则;脚本的处理;等等。document.write()
不幸的是,我对 W3 的各种 HTML 规范没有必要的熟悉程度来将其转换为简单的英语,而且看起来需要相当长的时间才能变得熟悉。
您实际上不必像我在这里所做的那样设置异步。(您通常也不需要设置类型,除非服务器配置错误。)动态添加的脚本是[默认异步](javascript.info/script-async-defer#dynamic-scripts)。至于让它立即执行,请确保脚本是内联的(不是从 url 加载的)并且它显示为头中的第一个脚本。 (3认同)更多推荐
加载,条件,JavaScript
发布评论