Страницы: 1
мне нужно получить текст всего документа в плане строку содержащую весь текст присутствующий на странице, не HTML, т.е. без тегов для набора своего рода статистики по встречающимся на странице словам. Есть вроде интерфейс nsIDOMDocumentRange у которого можно попросить range кот-й потом toString и вроде то что мне надо. Но не знаю как получить этот самый nsIDOMDocumentRange, или может есть другие пути?
Спасибо.
Отсутствует
Можно так:
function getTopWin () { var windowManager = Components. classes ['@mozilla.org/appshell/window-mediator;1']. getService(); var windowManagerInterface = windowManager. QueryInterface (Components. interfaces. nsIWindowMediator); var topWindowOfType = windowManagerInterface. getMostRecentWindow ("navigator:browser"); if (topWindowOfType) { return topWindowOfType; } return null; } function getContent () { var cont = getTopWin (). getBrowser (). contentDocument; var c2 = cont; try { cont = new XPCNativeWrapper (cont). wrappedJSObject; } catch(e) {} if (!cont) cont = c2; return cont; } print (getContent (). firstChild. nextSibling. textContent);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Можно так:
Выделить кодКод:
function getTopWin () { var windowManager = Components. classes ['@mozilla.org/appshell/window-mediator;1']. getService(); var windowManagerInterface = windowManager. QueryInterface (Components. interfaces. nsIWindowMediator); var topWindowOfType = windowManagerInterface. getMostRecentWindow ("navigator:browser"); if (topWindowOfType) { return topWindowOfType; } return null; } function getContent () { var cont = getTopWin (). getBrowser (). contentDocument; var c2 = cont; try { cont = new XPCNativeWrapper (cont). wrappedJSObject; } catch(e) {} if (!cont) cont = c2; return cont; } print (getContent (). firstChild. nextSibling. textContent);
не работает:
TypeError: getContent().firstChild.nextSibling has no properties
Отсутствует
...
не работает:TypeError: getContent().firstChild.nextSibling has no properties
Поясню: getContent().firstChild.nextSibling - это HTML документ. Можете получить его другим каким-нибудь способом.
Можно ещё уточнить (в моих обозначениях): getContent().firstChild.nextSibling.firstChild.nextSibling - если у документа есть <DOCTYPE>, и разделы <head> и <body>.
И ещё: в textContent попадают комментарии (<!-- ... -->).
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
cesspit пишет...
не работает:TypeError: getContent().firstChild.nextSibling has no properties
Поясню: getContent().firstChild.nextSibling - это HTML документ. Можете получить его другим каким-нибудь способом.
Можно ещё уточнить (в моих обозначениях): getContent().firstChild.nextSibling.firstChild.nextSibling - если у документа есть <DOCTYPE>, и разделы <head> и <body>.И ещё: в textContent попадают комментарии (<!-- ... -->).
спасибо, ключевой момент кот-й я вынес - св-во textContent, про которое я не знал. Чтобы не тащить за собой комментарии (и скрипты вдобавок ), мне тогда будет удобнее брать textContent у content.document.body.
Спасибо.
Отсутствует
Страницы: 1