Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Как адресовать тэг BASE


Автор: Гость_konstantin 18.10.2005, 00:47
Как в javascript адресовать тег BASE для динамического изменения базового адреса? Тег не имеет ни имени ни id

Автор: sergejzr 18.10.2005, 01:08
Код

var base=document.getElementsByTagName('base').item(0);


А почему собственно не имеет id? Уж не вчужом ли коде подменять собрались?
Как бы то ни было, защитная функция этого сделать всё равно не даст в чужом коде.

Автор: Guest 18.10.2005, 02:05
Да, в чужом.
Объясняю цель:
Если вы знакомы с Java, так там есть компонент WebBrowser. По сути представляет собой встроенный IE. Можно его направлять на урл, а можно передавать уже полученный с сервера HTML. Первый способ не годится, т.к. мне надо отслеживать кукисы, работать с прокси и т.д.
Поэтому я использую собственный обработчик HTTP, а IE-ренредеру передаю готовый HTML.
Как вы уже догадались, относительные урлы не работают, т.к. а адресной строке браузера находится about:blank.

P.S. Компонент имеет метод executeScript(...) через который можно выполнять произвольный javascript.

Спасибо, я попробую ваш способ!

Автор: sergejzr 18.10.2005, 02:23
Можно в приват ссылочку на компонент? Если он опенсорс конечно.
Я пробовал аналогичные действия. И пришёл к выводу, что нужно самому менять все ссылки перед рендерингом и отдавать компоненту предпроработанный ХТМЛ.
Хотя я сомневаюсь, что перенаправление base в этом случае поможет. Скорее поможет вставка <base href="тамтоитамто"> прямо в ХТМЛ.
Можем продолжать обсуждение проблемы в разделе Java
Удачи Вам. smile

Автор: Гость_konstantin 18.10.2005, 02:30
Ссылочку можноsmile
https://jdic.dev.java.net
Да, танцы вокруг base, outerHTML не помогли. Если тега изначально не было в странице, его туда не вставить.

Как вариант, пройтись по коллекции картинок, ссылок, объектов и апплетов на предмет подмены ссылок.

Ну или как вы уже упомянули, вставить тег base внутрь кода перед передачей его рендереру.

Автор: Sardar 19.10.2005, 01:07
если есть возможность пробежаться по document.links, document.forms, document.images и т.д. то проболемы не будет изменить URL у них.

Автор: kkorsakoff 21.10.2005, 20:32
Я про это и говорил

Цитата
Как вариант, пройтись по коллекции картинок, ссылок, объектов и апплетов на предмет подмены ссылок.


Так похоже и придется делать.

Кстати, линки бывают только двух типов или нет?
Всмысле разберем алгоритм подмены:

если начинается с http://, то оставляем as is
иначе к базовому урлу прибавляем относительный.

Что-то мне подсказывает, что все не так просто.
Как браузер отнесется к примеру к таким вещам, как http://www.somesite.com/html/../images/a.gif?
Ведь не очень хочется парсить эти все двоеточия...

Автор: Sardar 21.10.2005, 23:47
Цитата(kkorsakoff @ 21.10.2005, 19:32)
Кстати, линки бывают только двух типов или нет?

Все линки абсолютные, релативные приводяться к абсолютным.
Цитата(kkorsakoff @ 21.10.2005, 19:32)
Ведь не очень хочется парсить эти все двоеточия...

Что за двоеточия? Линки свободно разбиваються на состовляющие простыми регами.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)