0

我有一个脚本,我想把它放在我的页面上,它使用 document.writeln。

例如

    document.writeln('myjs');

当我实现这样的代码时

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

它没有问题。

但是我正在做一个响应式模板,所以根据屏幕宽度我想运行不同版本的文件。

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

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

有没有办法做到这一点?

4

2 回答 2

1

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

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

然而这不是一个好习惯,尽量避免编写方法。

于 2013-08-29T01:32:16.140 回答
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)
于 2013-08-29T01:34:40.390 回答