我想知道是否有办法在<script></script>
标记内有条件地包含脚本文件。
我试图做这样的事情:
<script>
if(condition)
{
<script src="/hts/functions.js"></script> //include this file if condition is met
}
</script>
我找到了这段代码:
$.getScript( "ajax/test.js", function( data, textStatus, jqxhr ) {
console.log( data ); // Data returned
console.log( textStatus ); // Success
console.log( jqxhr.status ); // 200
console.log( "Load was performed." );
});
但是,我不明白如何使用它。
有办法做到这一点吗?
答案 0 :(得分:1)
您使用$ .getScript:
进入了正确的轨道if(someConditionIsTrue){
// load script from the server
$.getScript( "somePath/onTheServer/script.js", function( data, textStatus, jqxhr ) {
// do something after the load is complete
});
}
答案 1 :(得分:1)
要使用该脚本,请将.getScript回调中的代码添加到页面的JavaScript中。应该在.getScript回调中包含或调用依赖于您正在注入的脚本的任何代码。
在您粘贴的代码中,console.log
语句在注入的脚本加载后运行。以下是使用$.getScript
加载Underscore.js库并将Underscore版本记录到控制台的示例:
var condition=true;
var pathToScript='http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore-min.js';
if(condition){
// load script from the server
$.getScript( pathToScript, function( data, textStatus, jqxhr ) {
console.log(_.VERSION);
});
};
JSFiddle:http://jsfiddle.net/WA4f4/2/
我稍微修改了你的代码,以便在JSFiddle中工作,并证明getScript回调中的代码可以从注入的脚本中访问变量。