我希望我的index.html页面中的一些脚本只能在条件下运行。 例如,在IOS的特定版本上,我希望 general.js 之后的脚本不能运行。
<script src="general.js"></script>
// stop here on condition
<script src="vendor/jquery/dist/jquery.js"></script>
<script src="vendor/angularjs/angular.js"></script>
<script src="vendor/angular-sanitize/angular-sanitize.js"></script>
<script src="vendor/angular-ui-select/dist/select.js"></script>
我该怎么做?
答案 0 :(得分:2)
为什么不使用像RequireJS这样的东西。让您的主引导脚本(您的general.js
)加载所有其他依赖于您的条件的脚本。
答案 1 :(得分:1)
你不能这样做。而是像往常一样插入第一个general.js
脚本,并在head
中添加一个script
添加文件:
<script>
var scripts = ['vendor/jquery/dist/jquery.js', 'vendor/angularjs/angular.js',
'vendor/angular-sanitize/angular-sanitize.js', 'vendor/angular-ui-select/dist/select.js'];
if(condition) {
for(i=0;i<scripts.length;i++) {
$('head').append("<script src='"+scripts[i]+"'></script>");
}
}
</script>
或者在香草JS中:
<script>
var scripts = ['vendor/jquery/dist/jquery.js', 'vendor/angularjs/angular.js',
'vendor/angular-sanitize/angular-sanitize.js', 'vendor/angular-ui-select/dist/select.js'];
if(condition) {
for(i=0;i<scripts.length;i++) {
script=document.createElement('script');
script.src=scripts[i];
document.getElementsByTagName('head')[0].appendChild(script);
}
}
</script>
这会创建一个新脚本目录和名称的数组,并循环遍历它们,并将它们动态添加到文档的头部。