我怎样才能缩短这个 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 值。
我想缩短这段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 值。