Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Открытие фрейма через JS, Редирект во фрейм через яваскрипт
gunis  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 27
Пользователь №: 42936
На форуме: 1 год, 2 месяца, 13 дней
Карма:




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

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

Это сообщение отредактировал gunis - 20.09.2016 - 23:13
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 6044
Пользователь №: 1
На форуме: 11 лет, 5 месяцев, 14 дней
Карма: 129

Не пью :
22 года, 10 месяцев, 14 дней


Цитата (gunis @ 20.09.2016 - 23:11)
скрипт в хедере:
Цитата (gunis @ 20.09.2016 - 23:11)
document.write(

Какого черта document.write() запускается в хедере? Логичней после "боди" где-нибудь.


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
gunis  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 27
Пользователь №: 42936
На форуме: 1 год, 2 месяца, 13 дней
Карма:




Попробовал Вашу рекомендацию, в боди не сработал, а в хедере работает...но опять таки в фаерфокс
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15394
Пользователь №: 4190
На форуме: 9 лет, 5 месяцев, 15 дней
Карма: 470




gunis, есть такое событие для БОДИ, называется ONLOAD. Вот в обработчике этого события и попробуй вызвать твою функцию doMagic. Скорее всего, причина твоей проблемы в том, что разные браузеры могут по-разному подгружать скрипты, т.е. в разное время. А указанный обработчик будет гарантированно вызван после загрузки всех скриптов.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
gunis  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 27
Пользователь №: 42936
На форуме: 1 год, 2 месяца, 13 дней
Карма:




По Вашей рекомендации добавил то что выделено жирным
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 - 12:10
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
gunis  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 27
Пользователь №: 42936
На форуме: 1 год, 2 месяца, 13 дней
Карма:




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

ничего не сработало...
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1605
Пользователь №: 28976
На форуме: 5 лет, 11 месяцев, 22 дня
Карма: 100




Как же так, неужели даже не посмотрели как правильно писать код ?
<div id="demo"></div>
doMagic();
function doMagic() {
document.getElementById("demo").innerHTML = "'тут новый текст'";
};
только подключайте свой скрипт после элемента, в котором делаете изменения
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
gunis  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 27
Пользователь №: 42936
На форуме: 1 год, 2 месяца, 13 дней
Карма:




Подскажите пожалуйста, что взять за альтернативу дива. Я видел как писать код getElementById, но применить к диву не смог, т.к. вывести нужно всю страницу а не элемент.
Т.е. от

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

до
</html>
вот тут
document.write('<frameset rows="*,0" framespacing="0" border="0" frameborder="NO"><frame src="http://мойсайт.ру/zzz" noresize="" scrolling="auto"></frameset>')
как раз и применяется вся хтмл страница
а в случае с getElementById предполагается элемент, див, id ...

Это сообщение отредактировал gunis - 22.09.2016 - 16:27
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1605
Пользователь №: 28976
На форуме: 5 лет, 11 месяцев, 22 дня
Карма: 100




document.body.innerHTML
Это ?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
gunis  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 27
Пользователь №: 42936
На форуме: 1 год, 2 месяца, 13 дней
Карма:




если я правильно понял, в исполняющем скрипте вставил ваше предложение:
doMagic();
function doMagic() {
document.body.innerHTML('<frameset rows="*,0" framespacing="0" border="0" frameborder="NO"><frame src="http://http://мойсайт.ру/zzz" noresize="" scrolling="auto"></frameset>')
}

фрейм не открлся (((
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 6044
Пользователь №: 1
На форуме: 11 лет, 5 месяцев, 14 дней
Карма: 129

Не пью :
22 года, 10 месяцев, 14 дней


<body id="demo">
- я бы так попробовал.
И скрипт после закрывающего "боди":
document.getElementById("demo").innerHTML = "'тут новый текст'";


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
gunis  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 27
Пользователь №: 42936
На форуме: 1 год, 2 месяца, 13 дней
Карма:




прошу прощения за кретинизм, что нужно записать в место "'тут новый текст'";
как это использовать чтобы открыть фрейм по адресу ('<frameset rows="*,0" framespacing="0" border="0" frameborder="NO"><frame src="http://мойсайт.ру/zzz" noresize="" scrolling="auto"></frameset>')
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 6044
Пользователь №: 1
На форуме: 11 лет, 5 месяцев, 14 дней
Карма: 129

Не пью :
22 года, 10 месяцев, 14 дней


Цитата (gunis @ 23.09.2016 - 11:57)
чтобы открыть фрейм по адресу ('<frameset

Секунду! Скрипт работает в контейнере <html> </html>.
Какой может быть frameset внутри этого контейнера?
Я по невнимательности думал, что у тебя айфрейм под 100% размера страницы...


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
gunis  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 27
Пользователь №: 42936
На форуме: 1 год, 2 месяца, 13 дней
Карма:




Все верно, нужно чтоб открывалось на 100% размера страницы.
Если frameset не подходит, как связать "'тут новый текст'" и открытие окна на 100% из адреса h t t p :// мойсайт. ру/zzz

Это сообщение отредактировал gunis - 23.09.2016 - 13:34
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 6044
Пользователь №: 1
На форуме: 11 лет, 5 месяцев, 14 дней
Карма: 129

Не пью :
22 года, 10 месяцев, 14 дней


<iframe src="http://phpforum.su/" width="100%" height="100%" frameborder="0"></iframe>


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса