在 JavaScript If/else 语句中,如何根据条件呈现脚本标记

In an JavaScript If/else statement, how can I render a script tag based on the condition?

本文关键字:条件 脚本 何根 If JavaScript else 语句      更新时间:2023-09-26

假设基于一个条件,我希望将某个JavaScript标签添加到HTML中。

script1 = '<div id="render_div"></div><script src="script1"></script>';
script2 = '<div id="render_div"></div><script src="script1"></script>';

var someCondition = 0;
if (someCondition == 0) {
    //only render script1;
} else {
    //only render script2
}

我正在考虑使用document.write(script1);但我认为这不是最好的方法。

以下是条件:

使用API,我正在抓取用户文件夹有多少图像。 因此,如果计数为 0,那么我想渲染脚本 2。 如果计数大于 1,那么我想渲染脚本 1。

如果你想避免使用document.write,或者因为它是异步的,你可以动态创建一个脚本标记并将其添加到 DOM。

var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
if (someCondition == 0) {
    script.src = 'script1';
} else {
    script.src = 'script2';
}
head.appendChild(script);

更新要求:

如果变量需要是 HTML,你可以使用 jQuery 将它们附加到 DOM 中。 jQuery 将解析 HTML 并自动加载脚本。

if (someCondition == 0) {
    $("SOME_SELECTOR").append(script1);
} else {
    $("SOME_SELECTOR").append(script1);
}

对所提问题的回答

这是一个很好的方法(取自HTML5样板(

<script>window.jQuery || document.write('<script src="js/vendor/jquery-{{JQUERY_VERSION}}.min.js"><'/script>')</script>

另类

YepNope (http://yepnopejs.com/( 为条件加载提供了一个很好的语法。通常与 Modernizr (http://modernizr.com/( 结合使用,用于条件填充。

如果使用Jquery,我建议使用$.getScript(正如这篇文章所建议的那样(。否则,亚历山大·奥马拉的建议似乎是合理的。