我正在研究的团队已经养成了<script>在HTML页面正文中随机位置使用标记的习惯.例如:
<html>
<head></head>
<body>
<div id="some-div">
<script type="text/javascript">//some javascript here</script>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我以前没见过这个.它似乎适用于我测试过的少数浏览器.但据我所知,将脚本标签放在这样的地方是无效的.
我错了吗?我们在这样的div标签中放置脚本标签有多糟糕?我应该注意哪些浏览器兼容性问题?
bob*_*nce 86
这完全有效.
你不希望在标记中混合大量的代码块(更好地使用外部脚本),但它可能对以下内容有用:
为渐进增强添加额外的绑定信息(这些数据很难适应类名或其他方法来隐藏属性中的扩展信息); 要么
尽可能快地启动脚本增强(而不是等待窗口加载/文档就绪).这方面的一个例子是自动对焦,如果太晚发射可能会激怒.
您可能正在考虑<style>不允许使用的元素<body>(尽管大多数浏览器仍允许这样做).
Kel*_*tex 15
实际上,这很常见.例如,Google的分析跟踪代码仅使用以下语法:
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
Run Code Online (Sandbox Code Playgroud)
如果它对谷歌来说足够好......
正如一些人提到的,它是有效的、有效的并且被广泛使用。
就语义推荐(或至少用于推荐)而言,最佳实践是将脚本标签放置在标头内。
考虑到性能的更现代的最佳实践建议将脚本标签(外部和内联)放置在正文标签之前的右下角,以允许标记在任何 JavaScript 代码执行之前完全呈现。
为了更容易理解和维护代码,建议使用“unobtrusive JavaScript”,其中代码位于外部文件中并将事件绑定到 DOM(Google unobtrusive JavaScript)。
内联 JavaScript 很有用的一种情况是使用仅存在于服务器端的值来初始化变量,然后外部 JavaScript 代码将使用该变量。
| 归档时间: |
|
| 查看次数: |
55885 次 |
| 最近记录: |