Мне нужно получить все текстовые узлы с определенным шрифтом на странице в массив. Я пытался ..
textnodes = document.evaluate("//* [@style='font-family: foo;']//text()["
+ "not(ancestor::script) and not(ancestor::style)]", document,
null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
и
textnodes = document.evaluate("//* [@face='foo']//text()["
+ "not(ancestor::script) and not(ancestor::style)]", document,
null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
Но они не работают со страницами, стилизованными под внешние CSS-файлы. Кажется, getComputedStyle () - это путь. Я думаю, что мне нужно что-то вроде ..
var tags = document.getElementsByTagName('*');
for (var i in tags) {
var style = getComputedStyle(tags[i], '');
if (style.fontFamily.match(/foo/i)) {
textnodes.push(tags[i]);
}
}
Но текстовые узлы не были возвращены в этом методе. Могу ли я в любом случае использовать гибрид xpathvaluate () и getComputedStyle () или любой другой способ добиться этого?