2

我知道我应该将所有 html 元素放在 body 标记中,但我需要在 html dtd 上方放置两个隐藏的输入。我想它不会使我的 html 文件成为标准,但它有那么糟糕吗?我有以下代码。

<input type='hidden' id='current_controller'>
<input type='hidden' id='current_module'>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

什么是风险?到目前为止,我没有任何问题。

4

3 回答 3

4

IIRC 的风险是,doctype如果 IE6 不是第一行,IE6 就会遇到麻烦。这也不是标准做法,可能会导致其他浏览器出现怪癖(但我相信大多数人应该宽容)。

似乎您正在使用 XHTML ...因此这些输入元素应该是自关闭的,因为它们没有结束标记。

<input type='hidden' id='current_controller' />
<input type='hidden' id='current_module' />
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

他们有什么理由必须在那里吗?为什么不能将它们放置在body元素内部的某个地方?如果它们没有value属性,我看不到任何实际用途,除非您正在检查它们的存在,或者value通过 JavaScript 添加属性(这意味着您也可以通过 JavaScript 自己添加这些元素)。

于 2009-05-24T23:47:12.410 回答
2

如果您实际上将其作为 XHTML 提供服务并因此使其通过 XML 解析器运行,则它不会呈现,因为标记无效。

于 2009-05-25T01:08:30.813 回答
1

风险在于,由于您的文档无效,它可能无法在某些浏览器或同一浏览器的不同版本(甚至是当前可能适用的未来版本的浏览器)中正​​确呈现。

我不确定您需要这样做的情况。你想用这种方法解决什么问题,也许还有另一个问题试图摆脱?:)

于 2009-05-25T00:04:09.990 回答