Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите разобраться очень надо (https://javascript.ru/forum/misc/43673-pomogite-razobratsya-ochen-nado.html)

ywitodenasuby 16.12.2013 15:00

Помогите разобраться очень надо
 
Делаю toolbar для Mozilla Firefox. Хочу брать код текущей страницы и вносить изменения в текст, например, замену или перевод пунктов меню на другой язык. Если более точно, то есть сайт на английском языке, я хочу сделать тулбар, который будет переводить некоторые части сайта из заготовок, которые я переведу вручную. Проблема в том, что я не знаю, как это сделать. Вот что получается.

Если я делаю так в коде тулбара:

gBrowser.selectedBrowser.contentDocument.body.innerHTML = gBrowser.selectedBrowser.contentDocument.body.innerHTML.replace(/site1/g, 'site2');


то на странице перестают работать всякие динамические элементы, ну типо меню перестает выезжать и т.д.

Была идея отправлять адрес текущей страницы на свой скрипт на сервере, который бы делал замену, но если я получу обработанный текст, то опять же я не смогу его вставить корректно в страницу т.к. не будут работать всякие выдвижные элементы.

Вообще в идеале я хочу чтобы было примерно так:
1. Я беру урл текущей страницы, потом отправляю его на свой скрипт php скрипт, который обработает текст и вернет его в тулбар, а в тулбаре я заменю ним текущий код страницы.


Подскажите как сделать такое
gBrowser.selectedBrowser.contentDocument.body.innerHTML = gBrowser.selectedBrowser.contentDocument.body.innerHTML.replace(/site1/g, 'site2');

чтобы нормально потом скрипты на странице работали?

рони 16.12.2013 15:38

ywitodenasuby,
переводите содержание TextNode а неперезаписывайте DOM

document.body.innerHTML.replace. Замена нескольких слов


Часовой пояс GMT +3, время: 20:51.