gpt4 book ai didi

javascript - HTML 多头

转载 作者:太空狗 更新时间:2023-10-29 14:43:25 27 4
gpt4 key购买 nike


注意:我绝不主张在一个页面中使用多个头像


我正在使用 Apache Tiles,我有一些包含自己头部的磁贴。 Tiles 的结果呈现为具有多个 header 的 HTML 页面。

我的问题:

  1. 在 IE 和 Chrome 中如何处理生成的页面? [它呈现并显示成功]
  2. 使用 APACHE TILES 在不必要求所有页面使用相同的 JS 和 CSS 文件的情况下,处理/避免 [for CSS/Javascript] 多个头部的最佳实践是什么。

以问题二为例:假设您有以下页面:主页、个人资料和图库列表。图库列表有花哨的 JQuery+YUI+... 和更多样式。对于大多数用户来说,他们只会对主页和个人资料页面感兴趣,所以为什么要加载与 Gallery 相关的 JS 和 CSS 文件来减慢他们的速度。

这是生成的

<html>
<head>
<title>The Template's Title</title>
</head>
<body>
<head> <script src="javascriptfile.js"/></head> Tile One Content
<head> <script src="javascriptfile2.js"/></head> Title Two Content
</body>
</html>

生成的内容是在 javascriptfile.js 和 javascriptfile2 中运行脚本。我在第一个问题中问的是:多余的头是否被忽略,内容是否考虑?它们是否合并到 html/head 级别?是否可以在第二个或以后的头部中包含 CSS 文件?使用更严格的 DTD 这会产生错误吗?

最佳答案

好吧,在现代 Chrome 中,至少可以知道发生了什么。 Chrome 使用 HTML5 解析器算法,该算法准确描述了如何处理无效标记。血淋淋的细节在http://dev.w3.org/html5/spec/tree-construction.html#parsing-main-inbody

在您的示例中发生的是第一个 <head><body>被丢弃。然后 <script src="javascriptfile.js"/> tag 被处理,这是一个开始标签,而不是一个自关闭标签,所以后面的所有内容,包括看起来像标签的所有内容,都成为脚本元素的文本子元素。没有显示任何内容,也没有运行脚本。如果<script src="javascriptfile.js"/><script src="javascriptfile.js"></script> 取代, <script src="javascriptfile2.js"/> 同上, head start 和 end 标记被静默丢弃,脚本元素没有移动。显示“Tile One Content Title Two Content”并运行脚本。 DTD 没有任何区别。

IE 有点难以理解,在 IE10 之前,它不使用 HTML5 解析器算法,因此它的确切行为是个谜。然而,粗略的实验似乎表明它具有与上述相同的行为。

虽然一些旧版浏览器移动了只能出现在头部的元素——例如<link> - 进入头部,其他浏览器没有,并且没有这样的行为可以依赖。

总而言之,最好避开此类结构。

我不知道 Apache Tiles 的实践。

关于javascript - HTML 多头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7575384/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com