在<body>
内的<div>
内有一个<script>
标签有什么不好?
我正在动态更新<div>
,以便在<div>
中重新加载JavaScript代码。有什么问题需要担心吗?
编辑
因为@Bergi坚持要看代码。在这里(见下文)。此div
(沿着其他包含演示HTML元素的div
)通过 AJAX 进行更新。div
中的script
包含Map,用于处理带有原始数据的页面上新加载的HTML元素。
<div>
<script type="text/javascript">
var namesMap = <dynamic string from server here>;
var addressesMap = <dynamic string from server here>;
</script>
</div>
6条答案
按热度按时间gzszwxb41#
将
<script>
标记放置在文档主体的任何位置都是完全可以的。从这里
SCRIPT元素将脚本放置在文档中。此元素可以在HTML文档的HEAD或BODY中出现任意次数。
但是,每当出现
<script>
标记时,它会暂停代码解析,直到脚本加载并执行。myss37ts2#
您可以在DIV标记中添加
<script></script>
。只要检查w3c,它是有效的HTML。m2xkgtsf3#
这并没有什么不好的。大多数widget都是这样工作的。它仍然是有效的HTML。
如果你想在你的页面中嵌入一个AdSense单元,你需要这样做。Amazon Widgets也是如此。这意味着大多数网站在div中有一个script标签。
kpbwa7wx4#
把脚本放在html里面有优点也有缺点。好的一面是,一个小脚本可以放在靠近它被使用的地方,这样你就可以更容易地理解页面在做什么。
如果没有其他人,但一个位置需要的脚本,那么它是罚款把它放在那里,我想。
糟糕的是,当您将程序的各个部分划分到多个位置时,要查看和管理这些部分如何相互作用和相互干扰变得更加困难。然而,如果你把html和javascript放在不同的文件中,那么就更容易分别理解它们,然后最终关注它们如何相互作用。它们之间的“接口”是什么。
如果JavaScript散布在HTML中,那么你就不能组织你的脚本代码,而不是组织HTML。
还有一件事要注意:如果您有一个DIV,您可能认为可以通过重新分配其innerHTML来操作其内容。这是可行的,只是不能以这种方式将脚本注入DIV。参见:
Can scripts be inserted with innerHTML?
因此,在DIV中包含脚本的一个缺点是,您不能通过重新分配其innerHTML来替换这样的脚本。
41ik7eoe5#
<DIV>
内部的脚本仍然可以工作。但有些人烦恼与您的布局- shacking时滚动。最佳解决方案:将脚本放入<body>
或<head>
:Denyaitl36#
尝试将
<script></script>
标记放在<head></head>
中一直是一个很好的做法。然而,最近出现的争论是否将一个标签放在<body></body>
标签的末尾,就在页面更快之前。我建议把你的
<script></script>
放在你的HTML文档的<head></head>
部分,因为它更受欢迎。此外,将<script></script>
放在DIV中并不是一个好的做法。你可以贴出你的例子来获得关于组织文档结构的更好的答案。
总而言之,你正在做的事情没有问题。但更有组织的方式是我建议的。