2013-08-29 49 views
0

我有一个脚本,我想放在使用document.writeln的页面上。运行包含document.write和getElementsByTagName的脚本

document.writeln('myjs'); 

当我实现这样的

<script src="http://www.example.com/js/script_v1.js"></script> 

它的工作原理没有问题的代码。

但是,我正在做一个reposnsive模板,这取决于我想要运行不同版本的文件的屏幕宽度。

如果我尝试像下面那样实现它它出现在头部但似乎没有运行代码?

<script type="text/javascript"> 
     if(aaa) { 
      myvar=2; 
     } 
     else { 
      myvar=1; 
     } 

    loader = document.createElement('script'); 
    loader.src = "http://www.example.com/js/script_v" + myvar + ".js"; 
    document.getElementsByTagName('head')[0].appendChild(loader); 
    </script> 

有没有办法做到这一点?

回答

1

您的脚本将被加载异步,因此您不能使用write()或writeln(),因为文档已关闭。加载它同步,所以:

document.write("<script src='http://www.example.com/js/script_v" + myvar + ".js'></script>"); 

然而,它是不是一个好的做法,尽量避免方法。

0

aaa是否定义?这应该工作。

查看您的控制台,看看是否有任何错误。

http://codepen.io/granttimmerman/pen/vErnG

如果你拉起来的控制台,你会看到

GET http://www.example.com/js/script_v2.js 404 (Not Found) 

此外,您可能希望创建脚本元素这样(取决于你的文档类型)。

var fileref = document.createElement('script') 
    fileref.setAttribute('type', 'text/javascript') 
    fileref.setAttribute('src', filename) 
+0

是的脚本加载,但它不执行document.write – ak85

相关问题