Xpoint
   [напомнить пароль]

Почему так?

Метки: [без меток]
[удл]
2004-11-09 15:13:10 [обр] Иван FXS[досье]

Здравствуйте!
Вот такой файл:

0
<html>
1
<head>
2
<title> myBrowser.mdb.TRY.html </title>
3
<link rel="SHORTCUT ICON" href="/favicon.ico">
4
<base target="_top">
5
</head>
6
<body>
7
</body>
8
</html>
9

- как он ДОЛЖЕН отображаться в браузере?
У меня (в IE6.0) он отображается вот так:

0 1 2 3 4 5 6 7 8 9

- это - правильно?

Далее, я "препарирую" его при помощи библиотеки MSHTML, смотрю свойства членов коллекции MSHTML.HTMLDocument.all посредством кода (VB):

                                        With HTMLDocument
For iElement = 0 To .all.Length - 1
                                        With .all(iElement)
    Debug.Print iElement; .nodeName, .parentNode.nodeName, .childNodes.Length; "--------"
    
    If .childNodes.Length > 0 Then
        Dim xChild As Object
        Set xChild = .firstChild
        Do
            With xChild
                Debug.Print .nodeName; "="; .nodeValue
                
                If .nextSibling Is Nothing Then
                    Exit Do
                Else
                    Set xChild = .nextSibling
                End If
            End With
        Loop
    End If
                                        End With
Next  
                                        End With

Получаю вот такую выдачу:

 0 HTML #document 2 --------
HEAD=Null
BODY=Null
 1 HEAD HTML 1 --------
TITLE=Null
 2 TITLE HEAD 0 --------
 3 BODY HTML 4 --------
#text=0 1 2 3
LINK=Null
#text=4
BASE=Null
 4 LINK BODY 0 --------
 5 BASE BODY 1 --------
#text=5 6 7 8 9

- возникает два вопроса:

  1. почему теги BASE и LINK отображаются как находящиеся "внутри" тега BODY?
  2. почему "узел"(node) text (="5 6 7 8 9") отображаются как находящиеся "внутри" тега BASE?
спустя 9 минут [обр] Владимир Палант(49/4445)[досье]
Вам знакома фраза "Trash In - Trash Out"? Какое может быть "должен отображаться" для документа, который не является HTML по целому ряду причин?
спустя 23 минуты [обр] Александр Лукьянов(3/781)[досье]
По стандарту HTML и HEAD не могут иметь непосредственными потомками текстовые узлы. Аналогично и на верхнем уровне не может быть непробельных текстовых узлов. Посмотрите спецификацию HTML 4 (http://www.w3.org/TR/html4).
Ваш пример стандарту никак не соответствует, поэтому говорить как он должен отображаться не имеет смысла — как браузер сможет обработать tag soup, так и покажет.
Powered by POEM™ Engine Copyright © 2002-2005