如何缩短此javascript表达式?document.createElement

How can I shorten this javascript expression? document.createElement

本文关键字:document createElement 表达式 javascript 何缩短      更新时间:2023-09-26

我想缩短这段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>

您可以使用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);

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

这个怎么样

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