Игнорировать аттрибут target=_blank в IE6
ну поставь уже себе оперу или фаерфокс и познай все прелести "практически чего угодно настраиваемости"
В общем, как выяснилось, при использовании фреймов можно убрать аттрибут target средствами JS, но только если отображаемая во фрейме страничка лежит на той же машине.
var d = document.getElementsByTagName('a');
for (var i = d.length-1; i >= 0; i--)
{
if (d[i].getAttribute('target') == '_blank')
{
d[i].removeAttribute('target');
}
}
У меня случай тяжелее, копаю дальше.
Т.е. ты хочешь во фрейме открыть страничку с другого домена и что-то в ней поменять с помощью JS?
смутное воспоминание, что средствами CSS2 можно было вешать скрипты через стили. в свою очередь, броузеры позволяют тебе вешать стили на чужие страницы.
http://files.myopera.com/Dragon/SoftWare_32/Ad%20Muncher... и сделай в его настройках замену текста
Save не забудь нажать!
Поставь target="_blank"на пустоту.
Save не забудь нажать!
Был такой вариант, но он невозможен.
Не прокатит.
Только как крайний случай. Во-первых, он платный, а во-вторых — не хочется ставить лишнее ПО.
Корпоративными политиками меняешь у всех клиентов файл etc/hosts, заменяя IP, относящийся к запрашиваемому URL, на IP своего сервера.
На своём сервере ставишь mod_rewrite и скрипт, который анализирует запрошенный URL, забирает оригинальный контент по этому URL с оригинального сервака, а потом парсит, убирает все target=_blank и отдаёт клиенту
меняешь у всех них
Кто такие «они»?
PS я поправил свой сумбурный пост предыдущий, чтоб понятнее было.
Корпоративными политиками меняешь у всех клиентов файл etc/hosts, заменяя IP, относящийся к запрашиваемому URL, на IP своего сервера.Допустим, запрашиваемые URL находятся на сайтах ***.narod.ru.
Что именно ты собираешься записать в хостс?
192.168.0.1 xxx.narod.ru
где 192.168.0.1 - мой сервер
Ну ладно, пошутили — и хватит. У нас Windows, и все настройки нужно проводить только на локальной машине.
Там прописывается нужная строка.
На каком-нибудь серваке (опять же можно и на виндовом) в локалке поднимается апач, mod_rewrite и любой интерпретатор скриптовых языков, например PHP. Mod_rewrite принимает полный URL, запоминает его и передаёт в параметре скрипту на PHP. Скрипт лезет на оригинальный сервер (с помощью curl, например всасывает с него запрашиваемую страницу, парсит её, убирая target=_blank, и отдаёт клиенту. У клиента полное ощущение, что он ходит на оригинальный сервер, за небольшим исключением в виде слабо заметных тормозов и возможных проблем с сертификатами безопасности.
Уу-у-у... Это задрочно слишком. Надо проще.
xxx - любое.
Не придумывай искусственных ситуаций.
заменяя IP, относящийся к запрашиваемому URL, на IP своего сервера.С чего ты взял, что имя хоста точно определено?
А задать какой-то айпишник всем субдоменам какого-нибудь домена ты не сможешь.
С чего ты взял, что имя хоста точно определено?А задать какой-то айпишник всем субдоменам какого-нибудь домена ты не сможешь.А с чего ты взял, что оно не определено?
Я вот в общих чертах знаю, в какой области работает крафт, и у меня есть определённое представление, в какой ситуации могло понадобится нечто подобное. Скорее всего, это какой-то терминал по типу банкомата или автомата оплаты, винда в embedded-версии, окно IE развёрнуто на весь экран, а сайт - некоторый сервис, которым пользуются клиенты, и притом сервис, скорее всего, сторонний, так как доступа к его коду нет.
А вот задача убрать все target=_blank с сайтов на narod.ru могла возникнуть только в твоём воспалённом мозгу.
ОК, забудь про narod.ru, что ты думаешь про ebay.com?
Несмотря на то, что я всё равно не вижу ни одной задачи, где требовалось бы покрыть недетерминированное множество субдоменов одного домена и убрать со всех ссылок на них атрибут _target=blank,я всё же предложу решение этой странной задачи: поднимаем локальный DNS, который на все домены, кроме заданного, будет отдавать настоящие IP, а на поддомены определённного домена - выдавать один и тот же локальный IP. Указываем этот DNS у всех клиентов. Дальше всё так же, как я рассказал.
поднимаем локальный DNS, который на все домены, кроме заданного, будет отдавать настоящие IP, а на поддомены определённного домена - выдавать один и тот же локальный IP. Указываем этот DNS у всех клиентовНу вот видишь? Всё уже усложняется...
Кроме того, при таком поведении твои ошибки будут влиять не на косяки при загрузке страниц с *.ebay.com, а на возможность отображения каких-либо страниц вообще.
Пользователи потом будут спрашивать, какого хрена яндекс не работает - и что ты им будешь отвечать, что это для того, чтобы ebay работал?
Ты сначала предложи решение ХОТЬ КАКОЕ-НИБУДЬ (кроме, конечно же, Висты, IE7 и аддона к нему IE7Pro со включенными UserScripts а потом рассуждай про чужие косяки и прочее. А то придумал себе какую-то сказочную задачку, и сидит кряхтит, что её решить сложно, а если руки кривые, то и опасно.
Так и есть. Это нужно, чтобы окна случайно не пооткрывались. Типа, всё в одном полноэкранном окошке. А сервис и правда поменять нельзя, но не из-за кода, а из-за того, что он еще в куче мест используется.
Ну и, само собой, даже если бы и можно было его пропатчить, всё равно более правильно заложиться на случай появления на страницах таких ссылок, мало ли чего там понапишут.
Кстати, есть ещё метод: ставишь прокси с ContentFiltering и в нём режешь все таргеты, а потом во всех IE указываешь ходить через этот прокси.
Оставить комментарий
al70
Есть IE6 и сайт с кучей ссылок с аттрибутом target=_blank. Необходимо сделать так, чтобы все эти ссылки открывались не в новом окне, а в текущем. Настройки можно проводить только на клиентской стороне, сайт изменить нельзя.В гугле что-то прямого ответа на вопрос не нашел.