Discussion:
firefox ext: html parsing, html 2 text transformation
(слишком старое сообщение для ответа)
Pavel Reich
2009-01-25 19:58:54 UTC
Permalink
Привет, All!

Есть у меня несколько вопросов относительно использования javascript в
extension для firefox 3:
1.Хочется динамически определя имя файля, вытягиватть внешний жабаскрипт,
например находящийся в chrome/content. XmlHttpRequest не сработает,
document.createElement('script')+src=url навесить не на что. Каким способом
можно загрузить javascript, и можно ли загружать из chrome/content или из
внешнего мира?
2.Хочется вытягивать страницу из extension, допустим используя xmlhttprequest и
успешно получив контент хочется xpathом его распарсить. Hо поскольку контент не
является xhtml, это несколько затруднительно. Какие есть варианты?
3.Вытащив нужный контент через substring получаю html, который хотелось бы
преобразовать в текст. Или еще каким-то полезным образом навесить на
statusbar.tooltip, чтобы показывался без html-тегов. Вручную регекспом
обгрызать теги не хотелось бы.
4.Вопрос про регекспы: Как будет выглядеть перловый
s/(ab|cd|ef)(gh|ik)(\w+)/$1$3/gi? str.replace(/((ab)|(cd))((gh)|(ik))(\w+)/,
"$1$3"); не работает.

Спасибо за советы.


С наилучшими пожеланиями, Pavel.
Mithgol the Webmaster
2009-01-26 09:29:52 UTC
Permalink
~'^\V/^`~ Коль по паспорту тут называют людей, `~^\V/^~'
" " То меня назовут ,,Соколов`` и ,,Сергей``. " "

Так было 22:58 25 Jan 09 написано от Pavel Reich к All:

PR> Есть у меня несколько вопросов относительно использования javascript
PR> в extension для firefox 3:

Возможно, было бы уместнее задать эти вопросы в эхе Ru.Mozilla, нежели в эхе
Ru.JavaScript.

PR> 1. Хочется динамически определя имя файля, вытягиватть внешний
PR> жабаскрипт, например находящийся в chrome/content. XmlHttpRequest
PR> не сработает, document.createElement('script')+src=url
PR> навесить не на что. Каким способом можно загрузить javascript,
PR> и можно ли загружать из chrome/content или из внешнего мира?

Что-то вроде Components.utils.import("resource://gre/modules/XPCOMUtils.jsm")
попробуй. Я об этом тут восьмого числа января писал как раз.

PR> 2. Хочется вытягивать страницу из extension, допустим используя
PR> xmlhttprequest и успешно получив контент хочется xpathом его распарсить.
PR> Hо поскольку контент не является xhtml, это несколько затруднительно.
PR> Какие есть варианты?

Распарсить ── это низовая задача. Какова задача более высокого уровня, чего ты
желаешь распарсиванием достигнуть?

PR> 3. Вытащив нужный контент через substring получаю html, который хотелось
PR> бы преобразовать в текст. Или еще каким-то полезным образом навесить
PR> на statusbar.tooltip, чтобы показывался без html-тегов. Вручную
PR> регекспом обгрызать теги не хотелось бы.

Этакой задачи давно не решал, но что-то такое должно быть. Первое, что приходит
в голову ── всё же взять responseText вместо responseXML и покусать простым
регэкспом, что-то вроде <[^>]+?> (где вопросительный знак для нежадности).

PR> 4.Вопрос про регекспы: Как будет выглядеть
PR> перловый s/(ab|cd|ef)(gh|ik)(\w+)/$1$3/gi?
PR> str.replace(/((ab)|(cd))((gh)|(ik))(\w+)/, "$1$3"); не работает.

Потому что /gi отбрасываешь. Полагаю, тебе не помешает скачать ECMA-262
и внимательно изучить раздел 15.10, особенно подраздел 15.10.4.1 ── это тебя
натолкнёт на мысль использовать что-нибудь в этом духе:

var MyRegex = new Regex('((ab)|(cd))((gh)|(ik))(\w+)', 'gi');
str.replace(MyRegex, '$1$3');

Можно и так:

str.replace(/((ab)|(cd))((gh)|(ik))(\w+)/gi, "$1$3")


Фидонет будет великим и гипертекстовым! [Ru.Mozilla] http://Mithgol.Ru/
Mithgol the Webmaster. [Братство Нод] [Team А я меняю subj]

... Всякий базис имеет свою, соответствующую ему надстройку... (И. В. Сталин)
Loading...