我能在<TABLE>中使用<SCRIPT>标签吗?

29

我需要在一个表格中使用<script>标签,因为PHP会在那里写入代码,从而向先前创建的Javascript数组添加内容。然而,我得到了一个验证错误(4.01 strict)。

是否有任何方法可以做到这一点,或者说这样做是被禁止的?

<TABLE>
    <TR>
      <SCRIPT></SCRIPT>
        <TD>
        </TD>
    </TR>
</TABLE>
(is this better maybe?):
<TABLE>
    <TR>
        <TD>
         <SCRIPT></SCRIPT>
        </TD>
    </TR>
</TABLE>

更改文档类型?你觉得呢?


2
我认为你至少应该转向XHTML。HTML 4已经过时了,就像IE6一样。 - leppie
2
@leppie 在使用 XHTML 时,你真的不应该有内联脚本块。如果你要在各个地方都有内联脚本,那么假装你的 HTML 是 XML 只会带来额外的问题。 - robertc
@leppie,我从未暗示你是那样的人,我只是指出在这种情况下你的建议是不切实际的,需要完全不同的方法。至于HTML5的最终确定日期,那是无关紧要的,你不需要等待 - 你知道CSS2.1还没有最终确定吗?与此同时,你有在使用CSS2.1吗? - robertc
@robertc:实际上并不是直接的,我在过去两年中没有进行任何网站开发 ;P - leppie
请使用小写标签,选择HTML4、5或XHTML。 - David Baucum
显示剩余4条评论
2个回答

41

SCRIPTTR中不被允许,因为TR的内容模型被定义为(TH|TD)+

<!ELEMENT TR       - O (TH|TD)+        -- table row -->

这意味着一个或多个THTD元素。

但是TD中允许使用SCRIPT。请参见TD的定义

<!ELEMENT (TH|TD)  - O (%flow;)*       -- table header cell, table data cell-->

其中参数实体flow的定义如下:

<!ENTITY % flow "%block; | %inline;">

内联的定义如下:

<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">

特殊 被定义为:

<!ENTITY % special
   "A | IMG | OBJECT | BR | SCRIPT | MAP | Q | SUB | SUP | SPAN | BDO">

1
此回答已过时;HTML 5 中允许在 tr 内部使用 script。我已发布了自己的答案 - Mark Amery

10
自从HTML 5发布以来,大多数表格元素,包括,都可以放置

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接