2014-03-06 21 views
0

我的页面位于here 正如你所看到的,它看起来并不像它的正常工作。如果您尝试在较旧的浏览器中打开它,这会变得非常明显(这正是最初设定的)。head标签页面加载后编程关闭

我检查从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"> 

等。

东西似乎关闭我的头标签,这是造成错误的种种:

W3 validator

我完全不知道是什么原因造成这一点。

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

上面的代码中不包含我的身体的代码,因为我相当肯定有无关head标签关闭所有突然间。

Here是一个网页,工作得很好的一些来源:

我完全被这个困惑,我不知道该怎么办,也不是什么原因造成的。 有什么建议吗?

解决方案

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

所以 - 如果你有同样的问题,因为我 - 保存文件,而无需编码的BOM(这可以在记事本做++)。

+1

总是把php代码放在头标签的上方或下方。尝试解决它。 –

+0

它看起来像你有答案,但你的混淆为什么这样工作。如上述状态,我希望你有理由为什么代码工作正常http://pastebin.com/j6FZYPM8。 –

+0

非常挑剔,但img标签不关闭HTML(5)所以他们应该 vogomatix

回答

3

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

我希望这可以工作。

PS:即使它不是你的页面被破坏的原因,你应该添加<html></html>到标记。大多数浏览器都可以处理它的缺失,但这是有原因的。

+0

谢谢,这也是Flixer的答案,似乎解决了它。 删除ZW NB,将PHP移动到页面顶部并添加标签终于解决了我的问题。 –

+0

重新开放问题!虽然我已经使页面能够正常工作,但我现在遇到了类似页面的相同问题:https://wifi.au.dk/testingenv/auto_setup_student.php 我删除了从第一个符号到下一个符号的所有内容div id =“container”>并将源代码从工作页面复制到此页面,但仍不起作用。我很困惑。 –

+0

@BjørnZeiler这是在不同的位置相同的字符。这一次,它在文档类型之前。 – Butt4cak3

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> 
+0

我试过这个,没有骰子。 –

+1

还有似乎是''和''之间的一些奇怪的字符 - 如果我的十六进制编码,它返回:' &#xfeff;','apperently&#xfeff'原因导致的问题(研究:它似乎意味着'零宽禁止空间')。尝试删除和之间的所有字符,并仅用空格和换行符替换它们。 – Flixer

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> 
.... 
相关问题