Js停止脚本标签在条件下运行

时间:2015-07-19 13:09:41

标签: javascript html

我希望我的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>

我该怎么做?

2 个答案:

答案 0 :(得分:2)

RequireJS?

为什么不使用像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>

这会创建一个新脚本目录和名称的数组,并循环遍历它们,并将它们动态添加到文档的头部。