Тема: HTMLUnknownElement. MSHTML, VBScript

В Internet explorer 11 не розпізнаються деякі теги (такі як ARTICLE). Воно пише що це HTMLUnknownElement і хоча в документації й написано що HTMLUnknownElement є нащадком HTMLElement та має різноманітні властивості та методи, але майже всі вони не працюють. Наприклад innerHTML. Можна якось перетворити непідтримуваний тег в, наприклад, DIV?

2

Re: HTMLUnknownElement. MSHTML, VBScript

Гадаю article те саме що і div, і працює скрізь окрім IE.

3

Re: HTMLUnknownElement. MSHTML, VBScript

Опиши початкову задачу. Що ти хотів зробити до того як вирішив запустити "Internet explorer" ?

Подякували: koala1

4

Re: HTMLUnknownElement. MSHTML, VBScript

Хотів збільшити пісюна на 8 сантиметрів.

Подякували: dot, leofun012

5 Востаннє редагувалося Droid 77 (24.09.2022 13:00:36)

Re: HTMLUnknownElement. MSHTML, VBScript

Не вдалося?

6

Re: HTMLUnknownElement. MSHTML, VBScript

javascriptIsLife написав:

Хотів збільшити пісюна на 8 сантиметрів.

Щоб що ? Про розмір пісюна можна не паритись. Все одно ми не маємо в кого його пхати. Дівчатам пох.. байдуже до нас і наших пісюнів.

Подякували: kant121

7 Востаннє редагувалося P.Y. (30.09.2022 19:24:51)

Re: HTMLUnknownElement. MSHTML, VBScript

Свого часу виявив, що будь-який невідомий тег поводиться (принаймні, в  ФФ) подібно до span. Можна зробити для нього опис у таблиці стилів (напр., перетворити з інлайнового на блочний, позиціонувати, підфарбувати і т.д.) — тобто, привести до вигляду, який у тега мав би бути. Не знаю, чи працюють такі штуки в ІЕ.

8

Re: HTMLUnknownElement. MSHTML, VBScript

javascriptIsLife написав:

Хотів збільшити пісюна на 8 сантиметрів.

Це можливо тільки з XHTML.

Подякували: dot, leofun012

9

Re: HTMLUnknownElement. MSHTML, VBScript

P.Y., за доп. методу createElement в DOM створюється тег для того щоб Internet eplorer „розпцізнав“ невідомий йому елемент. Таким чином можна стає можливим застосоувати CSS до нього. Але в даному випадку воно не підходить.

10

Re: HTMLUnknownElement. MSHTML, VBScript

Спеціально розгорнув Windows і запустив IE 11, щоб перевірити які { теґи | функції } підтримуються бровзером.
Пробував застосовувати JavaScript код

(function() {
    let body = document.body;
    if(typeof body === 'undefined') {
        console.warn('body was not found');
        return;
    }
    body.innerHTML = '';

    let article = document.createElement('article');
    article.classList.add('test');
    for(let i = 0; i < 3; ++i) {
        let innerTag = document.createElement('div');
        innerTag.appendChild(
            document.createTextNode(
                innerTag.tagName + ' ' + i
            )
        );
        article.appendChild(innerTag);
    }
    body.appendChild(article);

    console.log('article created');
})();

В цьому прикладі все нормально працює, всі існуючі стилі застосовуються до теґів автоматично.

Але в заголовку я бачу VBScript, там можуть бути свої обмеженя. Давайте ми подивимось на ваш код, а потім будемо шукати рішеня.

Подякували: bebyk, Chemist-i2

11

Re: HTMLUnknownElement. MSHTML, VBScript

Dim http
Set http = CreateObject("Msxml2.XMLHTTP")

http.open "GET", "https://weblog.west-wind.com/posts/2015/Jan/12/main-HTML5-Tag-not-working-in-Internet-Explorer-91011", False
http.send
If http.statusText <> "OK" Then WScript.Echo vbTab & "HTTP status <> 'OK'. HTTP status is " & http.statusText & vbCrLf : WScript.Quit

Dim html_string
html_string = http.responseText

Dim html
Set html = CreateObject("htmlfile")

With html
    .designMode = "on"
    .write html_string
End With

WScript.Echo "Type name is " & TypeName(html.getElementsByTagName("ARTICLE")(0))
WScript.Echo "innerHTML is " & html.getElementsByTagName("ARTICLE")(0).innerHtml
WScript.Echo "innerText is " & html.getElementsByTagName("ARTICLE")(0).innerText
WScript.Echo "itemprop is " & html.getElementsByTagName("ARTICLE")(0).getAttribute("itemprop")
Подякували: leofun011

12

Re: HTMLUnknownElement. MSHTML, VBScript

javascriptIsLife написав:

В Internet explorer 11 не розпізнаються деякі теги

Як ми вже переконались, теґ <article/> він розпізнає без проблем.

javascriptIsLife написав:

Воно пише що це HTMLUnknownElement і хоча в документації й написано що HTMLUnknownElement є нащадком HTMLElement та має різноманітні властивості та методи, але майже всі вони не працюють.

Помилки, які в цій темі описані, я спостерігаю при запуску cscript або wscript

%WinDir%\System32\cscript.exe script.vbs
%WinDir%\System32\wscript.exe script.vbs

Раніше я думав, що ти пишеш вбудований скріпт <script type="text/vbscript"> для своєї HTML сторінки. Тепер бачу що це не так. Про такі деталі треба писати зразу.

javascriptIsLife написав:

Можна якось перетворити непідтримуваний тег в, наприклад, DIV?

Впевнений що це робити потреба не є.

Якщо треба витягнути InnerText і швидкість виконаня не важлива, то можна зробити так

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = False
ie.Navigate "https://weblog.west-wind.com/posts/2015/Jan/12/main-HTML5-Tag-not-working-in-Internet-Explorer-91011"
While ie.Busy
    WScript.Sleep 200
Wend

Set articles = ie.Document.GetElementsByTagName("article")
WScript.Echo "Collection type: " & TypeName(articles)

For Each item In articles
    WScript.Echo "Item type: " & TypeName(item)
    WScript.Echo "Attribute ""itemprop"": " & item.GetAttribute("itemprop")
    WScript.Echo "InnerText: " & item.InnerText
    ' WScript.Echo "InnerHTML: " & item.InnerHTML
Next

ie.Quit
cscript.exe написав:

Collection type: DispHTMLElementCollection
Item type: HTMLSemanticElement
Attribute "itemprop": blogPost
InnerText: ...

Подякували: javascriptIsLife1