【问题标题】:Remove trailing ]> from the page从页面中删除尾随 ]>
【发布时间】:2011-07-08 04:41:01
【问题描述】:

我正在使用带有自定义属性的文档类型来验证 XHTML。这是我的文档类型

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
[
<!ATTLIST div data-localized CDATA #IMPLIED> 
]>

但问题是当我在浏览器上加载我的页面时它正在显示“]>”。 XHTML 验证良好。

【问题讨论】:

  • 我不是这方面的专家,但在我看来你的代码是无效的,因为你有嵌套 的。我猜第二个 > 正在关闭第一个 悬空。
  • 当我检查 W3validator 时它会验证
  • 是的,我在你的帖子中看到了。它似乎也在您的网络浏览器中进行验证。但仅仅因为它在语法上是正确的并不意味着它会做你想做的事。
  • 似乎是浏览器问题,没有任何问题 (quirksmode.org/oddsandends/dtd.html)
  • 发布了解决方法,见下文。违背了标准的目的,但至少你的页面看起来不错。

标签: html validation xhtml


【解决方案1】:

解决方法是使用 javascript 将其删除。在您的正文声明之后添加脚本,例如

<html>
<body>
<script type="text/javascript">

 function removeFirstTwo() {
  try {
     var htmlBody = document.getElementsByTagName("BODY")[0];
     if (htmlBody.firstChild.nodeValue.substr(0,2) == "]>") {
       htmlBody.firstChild.nodeValue = "";
     }
   } catch(e) { 
     //do nothing 
   }
 }

 removeFirstTwo();

</script>
...

【讨论】:

    【解决方案2】:

    查看A list apart中的文章 -

    不幸的是,当您显示 浏览器中的文件,]> 显示在 屏幕。

    它指出了一个涉及使用单独 DTD 文件的解决方案(在 W3C 验证器中将失败...)

    【讨论】:

      猜你喜欢
      • 2012-07-01
      • 2012-07-02
      • 1970-01-01
      • 2015-06-16
      • 2015-02-15
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多