Javascript 使用getElementsByTagName运行包含document.write的脚本

Javascript 使用getElementsByTagName运行包含document.write的脚本,javascript,responsive-design,append,Javascript,Responsive Design,Append,我有一个脚本要放在使用document.writeln的页面上 乙二醇 当我实现这样的代码时 <script src="http://www.example.com/js/script_v1.js"></script> 没问题 但是,我正在做一个reposnive模板,因此根据屏幕宽度,我希望运行不同版本的文件 如果我尝试像下面那样实现它,它会出现在头部,但似乎没有运行代码 <script type="text/javascript">

我有一个脚本要放在使用document.writeln的页面上

乙二醇

当我实现这样的代码时

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

没问题

但是,我正在做一个reposnive模板,因此根据屏幕宽度,我希望运行不同版本的文件

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

    <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>

如果(aaa){
myvar=2;
}
否则{
myvar=1;
}
loader=document.createElement('script');
loader.src=”http://www.example.com/js/script_v“+myvar+”.js”;
document.getElementsByTagName('head')[0].appendChild(加载器);

有没有办法做到这一点?

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

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

但是,这不是一个好的做法,请尽量避免使用书写方法。

是否定义了aaa?这应该行得通

在控制台中查看是否有任何错误

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

GET http://www.example.com/js/script_v2.js 404 (Not Found) 
此外,您可能希望以这种方式创建脚本元素(取决于doctype)


是,脚本加载,但不执行document.write
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)