Страницы: 1
Подскажите как наиболее правильно и без создания тяжеловесных XPCOM компонентов распарсить HTML entity из XPCOM JavaScript компонента?
Надо распарсить всякие последовательности вида & #9829; &.
Раньше когда весь код работал на уровне отдельно окна, то я создавал через document.createElement новый iframe и запиcывал в него всю строку, потом вручную заменял оставшиеся 4 последовательности < > & и всё было хорошо, но в XPCOM нету объекта document.
Есть идея через nsIWindowMediator получать любое окно и всё делать уже через window.document, но нет уверенности что у любого окна будет document. Т.е. основное окно Firefox может быть уже закрыто, а останется маленькое окошко открытое каким-нибудь расширением.
Отсутствует
http://xpoint.ru/forums/programming/XUL/thread/42796.xhtml
В XPCOM нет javascript-ового объекта DOMParser, но можно создать объект с интерфейсом nsIDOMParser.
var parser = Components. classes ["@mozilla.org/xmlextras/domparser;1"]. createInstance (Components. interfaces. nsIDOMParser); var s = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><root>&#9829;&</root>'; s = parser. parseFromString (s, "text/xml"). documentElement. textContent;
p. s. Есть еще nsIScriptableUnescapeHTML (https://developer.mozilla.org/En/NsIScriptableUnescapeHTML). С ним чуть проще:
var gUnescapeHTML = Components.classes["@mozilla.org/feed-unescapehtml;1"] .getService(Components.interfaces.nsIScriptableUnescapeHTML); var s = "&#9829;&"; s = gUnescapeHTML. unescape (s);
Отредактировано Anton (08-03-2009 19:50:08)
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Страницы: 1