html页面中的head标记在页面加载后以编程方式关闭

时间:2014-03-06 10:23:50

标签: javascript php html css head

我的页面位于here 如您所见,它看起来不像它正常工作。如果您尝试在较旧的浏览器中打开它,这就变得非常明显了(这是最初让我失望的原因)。

我从chrome检查了解释的源代码,它显示了以下内容:

<html>
    <head>
        <style type="text/css"></style>
    </head>
    <body>
            <title>Internet adgang - Hurtig opsætning - Ansatte</title>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8">

等。

似乎正在关闭我的头部标签,导致所有SORTS错误:

W3 validator

我完全不知道造成这种情况的原因。

你可以看到我的源代码here(我已经扰乱了PHP):

上面的代码不包含我的正文代码,因为我很确定这与头标记突然关闭无关。

Here是一个工作正常的网页的一些来源:

我对此完全感到困惑,我不知道该做什么,也不知道是什么造成的。 有什么想法吗?

解决方案

在Buttc4k3和vogomatix的帮助下,我终于找到了解决方案。正如buttc4k3所说,文件中隐藏了一个非法的“零宽度无空格”字符,这个字符在我的崇高文本编辑器中没有显示。它只会显示你是否在Notepad ++中打开文件。我无法理解为什么这个角色会出现在谷歌浏览器中,而不是在我的源代码中,但在谷歌搜索后,我发现以UTF-8 WITH BOM(字节顺序标记)保存的文件会将BOM保存为零宽度无空间的角色!这是vogomatix救了我的地方,并告诉我我的文件是用BOM保存的,并且在没有BOM的情况下重新编码后它工作正常。

所以 - 如果您遇到与我相同的问题 - 保存您的文件而不用BOM编码(这可以在记事本++中完成)。

3 个答案:

答案 0 :(得分:3)

我获取了您网站的网页来源并将其粘贴到Notepad++并在第3行第5列中找到zero-width no-break space。它在大多数编辑器/查看器中呈现不可见,但它打破了HTML解析器浏览器。我不知道它是如何或为什么到达那里因为我无法在PHP代码中找到它,但也许你可以通过在Notepad ++中打开你的代码来找到它。它将此角色渲染为一个小点。如果找不到,请删除<head><title>的所有内容,然后重新输入。

我希望这有效。

PS:即使这不是您的网页被破坏的原因,您也应该在标记中添加<html></html>。大多数浏览器可以处理它的缺席,但这是有原因的。

答案 1 :(得分:0)

您似乎错过了<html>标记。

当前的HTML代码:

<!DOCTYPE html>
<head>
    <title>Internet adgang - Hurtig opsætning - Ansatte</title>

必须是这样的:

<!DOCTYPE html>
<html>
    <head>
        <title>Internet adgang - Hurtig opsætning - Ansatte</title>
        [...]
    </head>
    <body>
        [...]
    </body>
</html>

答案 2 :(得分:0)

将您网站的第一部分编辑为:

    <?php
   include 'XXXXX';
   include 'XXXXX';
   if(!isset($_GET['lang'])) {
       $lang = "DA";
   } else {
       $lang = $_GET['lang'];
   }
   ?>
<!DOCTYPE html>
<html lang="<?php $lang; ?>">
<head>
    <title><?php echo trans("Internet adgang - Hurtig opsætning - Ansatte", $lang); ?></title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <link rel="stylesheet" href="resources/styles/style.css" media="all">
    <script src="resources/js/jquery.min.js" type="text/javascript"></script>
    <script src="resources/js/jquery-ui.min.js" type="text/javascript"></script>
    <link rel="stylesheet" type="text/css" href="resources/styles/au-flowbox-style.css">
    <script type="text/javascript" src="resources/js/au-flowbox.js"></script>
    <script type="text/javascript" src="resources/js/au-flowbox.data.js"></script>
</head>
<body>
....