在 JavaScript If/else 语句中,如何根据条件呈现脚本标记
In an JavaScript If/else statement, how can I render a script tag based on the condition?
假设基于一个条件,我希望将某个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(正如这篇文章所建议的那样(。否则,亚历山大·奥马拉的建议似乎是合理的。
相关文章:
- 如果条件匹配,则停止执行脚本
- AngularJS:如何使用java脚本函数更改跨度的ng-show条件
- 咖啡脚本意外的条件评估
- 如何在脚本块中使用jade/pug条件语句
- 在谷歌应用程序脚本中,如何在满足条件的情况下只发送一次电子邮件
- Google Apps 脚本,用于根据一个单元格的值对另一个单元格进行条件颜色格式设置
- 检测TAB键并使脚本执行成为条件
- 只有在条件满足时才加载javascript脚本-不起作用
- 如何根据条件启用或禁用脚本
- 根据页面条件对脚本进行排队
- 如果 java 脚本中的其他条件,则无法正确输出
- 我想添加条件以更改此脚本中的图像或创建新的图像
- 小于或等于条件在我的脚本中不起作用
- 我可以在java脚本中使用博客条件标签(IF)吗?
- 有条件地将内容脚本加载到 Safari 扩展中,就像在 FF/Chrome 中一样
- $.getScript():有条件地加载 js 脚本
- jQuery 在单击事件中的 if 条件后停止脚本执行
- 我的 JavaScript 需要什么条件?它是一个弹出一个对话框的脚本,其中包含字段的表单验证备注留空
- 在HTML文件中有条件地运行JS脚本
- 使用jquery表单验证插件验证动态生成的字段(通过条件脚本)