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