0

我的头部部分是这样的:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="es" xml:lang="es">
<head>
    <title>Hi!</title>
    <mycustomtag att="1"></mycustomtag>
    <script>...</script>
    <!--anything else-->
</head>
<body>
</body>
</html>

Chrome/Firefox 的问题是 MyCustomTag 出现在 BODY 部分和 SCRIPT 标签。我不知道为什么会出现:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="es" xml:lang="es">
<head>
    <title>Hi!</title>
</head>
<body>
    <mycustomtag att="1"></mycustomtag>
    <script>...</script>
    <!--anything else-->
</body>
</html>
4

3 回答 3

0

Add

<style>
mycustomtag { display: none; }
</style>

The Chrome behavior is a feature, not a bug. When you use an invented tag, you deviate from HTML specifications, and browser may do whatever they want. (You also have a nonconforming doctype, which triggers quirks mode in some browsers.)

于 2012-07-28T19:09:54.247 回答
0

解决此问题的唯一方法是管理 html 的渲染并添加自定义标记以开始正文和结束正文标记。这种方式可以删除浏览器注入的所有标签。Chrome 在正文末尾插入标签也 :s 是不可思议的!关闭标签是!非常感谢!–

于 2012-07-28T21:31:52.063 回答
0

要处理元素在DOM 中body而不head在 DOM 中的问题(与仅需要隐藏元素相反),通过将元素从body(如果存在)移动到 DOM 来操作head

<script>
var myElement = document.getElementsByTagName('mycustomtag')[0];
if(myElement.parentNode === document.body) {
  document.body.removeChild(myElement);
  document.head.appendChild(myElement);
}
 </script>
于 2012-07-28T19:32:26.927 回答