Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.09.2016, 09:58
Новичок на форуме
Отправить личное сообщение для gunis Посмотреть профиль Найти все сообщения от gunis
 
Регистрация: 21.09.2016
Сообщений: 3

Помогите открыть фрейм
Добрый день, есть скрипт редиректа (редирект - громко сказано) во фрейме внутри своего сайта, можно сказать открытие фрейма внутри своего сайта с помощью яваскрипт. Многим давно известный способ. Мнения конечно разделяются, одни считают что поисковики умеют читать и скрипты и фреймы и что за это бан, другие это отрицают обусловливая, что внутри своего сайта это не редирект и ничего страшного в этом нет или что они это не читают (тем более если это в ноиндекс) но суть в другом, все работает в фаерфоксе, а в других браузерах нет (((
скрипт в хедере:

<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 в том что он НЕ меняет реферер в строке браузера и показывает в строке браузера адрес коренного/родительско документа с которого был "редирект".
Все работает в фаерфоксе, но т.к. разные браузеры интерпритируют фрейм по совему - отличные от фаерфокса другие браузеры этот фрейм не открывают.
если же в хедере использовать просто скрипт переадресации, то не сохраняется реферер...

Я не силен в скриптах и пхп, весь моск уже обгуглился, подскажите что нужно подправить чтобы открывалось во всех браузерах с реферером в строке браузера и именно через файл яваскрипт.
Ответить с цитированием
  #2 (permalink)  
Старый 22.09.2016, 11:56
Новичок на форуме
Отправить личное сообщение для gunis Посмотреть профиль Найти все сообщения от gunis
 
Регистрация: 21.09.2016
Сообщений: 3

По рекомендации на другом форуме поступило предложение добавить событие для БОДИ, называется 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" ?

Последний раз редактировалось gunis, 22.09.2016 в 11:59.
Ответить с цитированием
  #3 (permalink)  
Старый 22.09.2016, 14:49
Новичок на форуме
Отправить личное сообщение для gunis Посмотреть профиль Найти все сообщения от gunis
 
Регистрация: 21.09.2016
Сообщений: 3

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>')
}

ничего не сработало...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите открыть при старте первую вкладку в табах ufaclub jQuery 3 02.09.2014 16:09
загрузка картинки во фрейм) shikuwa Общие вопросы Javascript 2 19.11.2012 10:01
Динамическое создание iframe в Firefox mrbean11 Firefox/Mozilla 8 02.11.2012 21:23
Помогите открыть http адрес с помощью php chippolino Серверные языки и технологии 1 13.11.2011 23:50
Фрейм обновляет себя и другой фрейм exp Общие вопросы Javascript 2 31.05.2011 11:17