我正在尝试使用C ++ / COM中的IE getAttribute
方法读取HTML元素的 aria-label 属性,但这适用于其他属性(包括 aria- labelledby )它为 aria-label 返回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
}
对flags
的{{1}}参数使用2时得到相同的结果。
示例HTML here。
当我在浏览器中尝试在JavaScript中使用getAttribute
时,这非常有效但由于某些原因我无法使用COM达到此属性。
我在这里错过了什么吗?
答案 0 :(得分:3)
根据我的经验,可以通过DOM Level 3 getAttributeNode
方法(IHTMLElement4
中提供)访问一些新的HTML5新属性。
例如,要使其适用于placeholder
属性,我必须使用WebBrowser Feature Control并为包含<!DOCTYPE html>
和<meta http-equiv="x-ua-compatible" content="IE=Edge"/>
的网页启用HTML5(这是一个不错的选择)在任何一种情况下的想法)。