2014-02-11 87 views
0

我想在我的index.html页面中包含一个本地.js文件,该文件基于'if'语句的结果,如以下示例代码中所述。我需要将.js内容包含在页面的初始加载中,因为内容将在加载时显示在html中。如何在页面加载之前动态包含JavaScript文件

的index.html:

<html> 
    <head> 
    <script src="script.js"></script> 
    </head> 
<body> 
    <script> 
     include_another_script(); 
    </script> 
</body> 
</html> 

的script.js:

include_another_script function(){ 
    var url; 
    if(//some stuff){ 
     url = "script1.js"; 
    } else { 
     url = "script2.js"; 
    } 

    document.write("<script src=url></script>"); 
} 

回答

1

试试这个

<head> 
<script type="text/javascript"> 

var url; 
if(blah == blah){ 
url = 'myUrl.js'; 
}else{ 
url = 'myOtherUrl.js'; 
} 

var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; 
po.src = url; 
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); 

</script> 
</head> 
+0

Ooops,当我编写示例代码时,我很sl。。是的,我已经在我的工作版本中完成了这项工作。仍然不能解决我的问题:( – p1xelarchitect

+0

@ p1xelarchitect在这种情况下,你可以展示一个更完整的示例?我没有看到任何理由,它不起作用。 –

+0

我编辑我的答案......这将工作 – VIDesignz

0

如果您需要的脚本之前加载文件加载,你需要t o在文档的head部分中包含条件脚本。

你可以做这样的事情:

<head> 
    <script src="script.js"></script> 
    <script type="text/javascript"> 
     function include_another_script(){ 
      var url; 
      if(//some stuff){ 
       url = "script1.js"; 
      } else { 
       url = "script2.js"; 
      } 
      $('head').append('<script type="text/javascript" src="'+url+'"></script>'); 
     } 
    </script> 
</head> 

注意,你的函数声明是错误的:

include_another_script function() { 
+0

为什么它需要在? –

+1

@KevinB他说:“我需要将.js内容包含在页面的初始加载中,因为内容将在加载时显示在html本身中”。把他们放在头上确保他们会。 –

+0

由于OP要求在文档 – VIDesignz

0

试试这个,src的路径要加载脚本。
var script = document.createElement('script');
script.src = src;
document.head.appendChild(script);

相关问题