我怎样才能缩短这个 javascript 表达式? document.createElement

How can I shorten this javascript expression? document.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>

这个呢

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

您可以使用 document.head 而不是 getElementsByTagName。所以:

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

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

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

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