Чтение & quot; aria-label & quot; через MSHTML возвращает NULL

Я пытаюсь прочитать элемент HTML ария-этикетка атрибут с использованием IE getAttribute метод в C ++ / COM, но хотя он отлично работает для других атрибутов (в том числе ария-labelledby) он возвращает VT_NULL для ария-этикетка.

Мой пример кода выглядит так:

CComVariant label;
elem->raw_getAttribute(CComBSTR(L"aria-label"), 0, &label);
if (label.vt == VT_BSTR && SysStringLen(label.bstrVal)) {
// This is never reached
}

Я получаю те же результаты при использовании 2 для flags аргумент getAttribute,

Образец HTML здесь.

Когда я пытаюсь использовать getAttribute в JavaScript в браузере это работает отлично, но по какой-то причине я не могу получить этот атрибут с помощью COM.

Я что-то здесь упускаю?

3

Решение

По моему опыту, некоторые новые новые атрибуты HTML5 доступны через DOM Level 3 getAttributeNode метод (доступно в IHTMLElement4).

Например, чтобы это работало на placeholder атрибут, я должен был использовать Элемент управления WebBrowser и включите HTML5 для веб-страницы с <!DOCTYPE html> а также <meta http-equiv="x-ua-compatible" content="IE=Edge"/> (что является хорошей идеей в любом случае).

3

Другие решения


По вопросам рекламы [email protected]