Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 为什么浏览器会错误地将链接、样式和脚本元素从头部移动到身体?_Html_Dom_Browser - Fatal编程技术网

Html 为什么浏览器会错误地将链接、样式和脚本元素从头部移动到身体?

Html 为什么浏览器会错误地将链接、样式和脚本元素从头部移动到身体?,html,dom,browser,Html,Dom,Browser,问题是:当我在head元素中放置link、style或script元素时,浏览器似乎错误地将这些元素移动到body元素中,这是通过遍历JavaScript节点树检测到的。我的错误意思是它们违反了规范。例如,哪些国家: 注意:如果使用rel属性,则元素仅限于head元素 这是我的密码 <!DOCTYPE html> <html> <head> <title>head test</title> <meta charse

问题是:当我在head元素中放置link、style或script元素时,浏览器似乎错误地将这些元素移动到body元素中,这是通过遍历JavaScript节点树检测到的。我的错误意思是它们违反了规范。例如,哪些国家:

注意:如果使用rel属性,则元素仅限于head元素

这是我的密码

<!DOCTYPE html>
<html>
<head>
    <title>head test</title>
    <meta charset="utf-8" />.
    <link href="sample.css" rel="stylesheet" /> 
    <script></script>
    <style>p{font-family:"Times New Roman";font-size:20px;}</style>
</head>
<body>
    <p>test paragraph</p>
<script type="text/javascript">
    function htmlTree(obj){
        var obj = obj || document.getElementsByTagName('html')[0];
        var str = "<ul><li>" + obj.tagName;
        if (obj.hasChildNodes()) {
            var child = obj.firstChild;
            while (child) {
                if (child.nodeType === 1) {
                    str += htmlTree(child)
                }
            child = child.nextSibling;
        }
    }
    str += "</li></ul>";
    return str;
}
window.onload=document.write(htmlTree());
请注意,头部中的链接、脚本和样式元素已移动到主体中,而标题和元元素是正确的。不幸的是,这已经成为我的一个问题,因为当我使用HTML5内容和移动元素时,元素会变得混乱不堪,无法解开。由于html5支持这些元素的类属性,我想知道是否可以使用“headtype”类来区分这些特定元素

这有点类似于,但更详细。这个问题是针对WebKit的,但我在WebKit、Chrome、IE和Firefox中进行了测试,在每个浏览器中都得到了相同的结果,这让我感到困惑


由于所有主要的浏览器都有相同的行为,我怀疑我误解了什么,并希望得到任何帮助。

经过进一步的调查,试图更简洁地描述问题的参数,我发现了问题。在对我为测试用例复制的文件的HTML文件进行十六进制转储之后,我在元标记后面发现了一些隐藏的控制字符,正如Rob W注意到的那样,它显示为一个点。删除控制字符后,HTML工作正常。由于我必须使用在其他地方生成的HTML,因此在加载浏览器之前,我似乎必须对HTML进行预处理。

只是注意到(可能是无关的,甚至可能是html5?),但您的脚本和样式标记没有类型属性。在
标记后有一个字符(点)。这意味着
的开始,因此
@RobW:Spot on的结束。你应该加上这句话作为回答。@TimDown我已经投票决定以TL结束。我不希望有人能用正确的搜索词通过谷歌找到这个问题。@RobW我实际上是通过“head element move”谷歌搜索登陆这里的,并且避免了自己的头痛;如果这是关闭太本地化的唯一理由,我建议取消它。谢谢
HTML
    HEAD
        TITLE
        META
    BODY
        LINK
        SCRIPT
        STYLE
        P
        SCRIPT