Войти

Показать полную графическую версию : Обуздание Яндекса


hasherfrog
02-07-2005, 16:19
Яндекс вообще одна из суперских систем. Везде лезет, никого не слушает, умная как ч@рт ну и вообще... Вот я и попал в такую интересную ситуацию:

Нужно вызвать окно с результатами яндекс-поиска внутри фрейма. Но яндекс - не дурачок (а точнее, просто злобный кекс :-Е). У него страница содержит такой финт:

onLoad="if( self.parent.frames.length != 0 ) { self.parent.location = document.location } ... "
Ну и понятно, что из фрейма он вылезает, убивая все остальные фреймы страницы.

Есть способ обрубить выполнение данной штуки? Я попробовал window.frames[i].onLoad="", но установка выполняется слишком рано, видимо. После загрузки фрейму заново присваивается яндексовский скрипт, со всеми вытекающими.


Есть идеи???

hasherfrog
02-07-2005, 17:51
Причём что интересно. Всё-таки если фрейму при создании сказать, к примеру, что
<frame src="http://yandex...." onload="javascript:(this.onLoad=alert(document.title))>
То фрейм таки отследит, что яндекс закончил загрузку (и покажет алерт-бокс).
Но сразу после закрытия мессадж-бокса всё равно срабатывает яндексовский onload().
Как же его отключить?

E-mail
02-07-2005, 23:52
hasherfrog а почему именно фреймы?

mar
03-07-2005, 01:20
напрямую, по-моему, никак. Вариант - скрипт (php, или shtml с подключением скрипта), получающий контент страницы, парсящий ее, выкусывющий лишнее (или наоборот необходимое) и вставляющий в нужное место.

hasherfrog
03-07-2005, 04:19
E-mail
>> а почему именно фреймы?
А как ещё загрузить окно в окне?

mar
Хм. Проверить можно только практикой - что если сразу после загрузки пропарсить текст и убить onload прямо в тексте? Или что-то с ним сделать, а потом прибить тот фрейм... Плохо соображаю сейчас, короче, надо попробовать. Только никаких php и shtml у меня нету. Только JavaScript.




© OSzone.net 2001-2012