Помогите открыть фрейм
Добрый день, есть скрипт редиректа (редирект - громко сказано) во фрейме внутри своего сайта, можно сказать открытие фрейма внутри своего сайта с помощью яваскрипт. Многим давно известный способ. Мнения конечно разделяются, одни считают что поисковики умеют читать и скрипты и фреймы и что за это бан, другие это отрицают обусловливая, что внутри своего сайта это не редирект и ничего страшного в этом нет или что они это не читают (тем более если это в ноиндекс) но суть в другом, все работает в фаерфоксе, а в других браузерах нет (((
скрипт в хедере: <script type="text/javascript" src="http://мойсайт.ру/jsfiles/123.js"></script> папка jsfiles со скриптом закрыта в роботсе от индексации в этой папке скрипт 123.js с следующим телом: doMagic(); function doMagic() { document.write('<frameset rows="*,0" framespacing="0" border="0" frameborder="NO"><frame src="http://мойсайт.ру/zzz" noresize="" scrolling="auto"></frameset>') } в папке zzz находятся отличные от коренного/родительского индексный файл, css, htacces (htacces дубль коренного), т.е. то куда делается "редирект" , т.е. то что открывается во фрейме на весь экран. Приемущество document.write в том что он НЕ меняет реферер в строке браузера и показывает в строке браузера адрес коренного/родительско документа с которого был "редирект". Все работает в фаерфоксе, но т.к. разные браузеры интерпритируют фрейм по совему - отличные от фаерфокса другие браузеры этот фрейм не открывают. если же в хедере использовать просто скрипт переадресации, то не сохраняется реферер... Я не силен в скриптах и пхп, весь моск уже :blink: обгуглился, подскажите что нужно подправить чтобы открывалось во всех браузерах с реферером в строке браузера и именно через файл яваскрипт. |
По рекомендации на другом форуме поступило предложение добавить событие для БОДИ, называется ONLOAD. Вот в обработчике этого события нужно вызвать мою функцию doMagic. Скорее всего, причина проблемы в том, что разные браузеры могут по-разному подгружать скрипты, т.е. в разное время. А указанный обработчик будет гарантированно вызван после загрузки всех скриптов.
Добавил то что выделено жирным window.onload = function doMagic(); function doMagic() { document.write('<frameset rows="*,0" framespacing="0" border="0" frameborder="NO"><frame src="http:/............ Заработало во всех браузерах ! Очень смущает один момент, "cтpиптиз" перед открытием фрейма, т.е. 2 секунды видна родительская страница, а потом происходит открытие фрейма. Т.е. при переходе на сайт по ссылке или из поисковика на 2 секунды отображается страница без срабатывания скрипта, через 2 секунды срабатывает скрипт.. Подскажите пожалуйста, есть ли способ без "cтpиптизa" ? |
onload - Код переданный данному событию исполнится после того, как картинка или страница полностью загрузится. Поэтому у меня "cтpиптиз". Чтобы избежать моргания и "cтpиптизa" - нужно исполнене скрипта до загрузки страницы, т.е. когда строится DOM. Нашел что есть альтернатива document.write - это innerhtml, и якобы он читается всеми браузерами,но как прикрепить его в этой связке пока не пойму.
попробовал заменить ocument.write на innerhtml doMagic(); function doMagic() { innerhtml ('<frameset rows="*,0" framespacing="0" border="0" frameborder="NO"><frame src="http://мойсайт.ру/zzz" noresize="" scrolling="auto"></frameset>') } ничего не сработало... |
Часовой пояс GMT +3, время: 05:32. |