如何缩短这个javascript表达式?使用document.createElement

时间:2016-05-04 08:18:34

标签: javascript appendchild createelement

我想缩短这个js代码,你可以吗?

<script>
    var h = document.getElementsByTagName('head')[0],
        s = document.createElement('script');
    s.type = 'text/javascript';
    s.src = 'file.js';
    h.appendChild(s);
</script>

我想这样的事情却不起作用:

<script>
    var h = document.getElementsByTagName('head')[0],
        s = document.createElement('script').type='text/javascript';
    s.src = 'file.js';
    h.appendChild(s);
</script>

3 个答案:

答案 0 :(得分:2)

您可以使用document.head代替getElementsByTagName。所以:

s = document.createElement('script');
s.type = 'text/javascript';
s.src = 'file.js';
document.head.appendChild(s);

答案 1 :(得分:1)

这个怎么样

ModelState.IsValid

答案 2 :(得分:1)

正如Frédéric上面已经提到的,现代浏览器总是假设<script>标签默认包含JavaScript。所以你可能会逃避这样的事情。

(s = document.createElement("script")).setAttribute("src", "/path/to/file.js");
document.head.appendChild(s);

dirty 实现的唯一限制是它不支持链接方法,因为setAttribute没有返回值。