Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузить страничку в фрейм на другой странице. 
:(
    Опции темы
RinOS
Дата 10.9.2006, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.9.2006

Репутация: нет
Всего: нет



Здравствуйте. У меня вопрос такой.
Есть страничка Index.html там 2 фрейма. 1 это окно навигации, а 2 это  
представляемая информация. Фрейм 2 name = "center". Когда пользователи 
зашли на мой сайт на главную страничку то всё нормально есть и панель 
навигации и информационное поле. А вот когда по ссылке от яндекса на 
пример на необходимый документ то отрывается окно без панели навигации (не во фрейме). 
Как сделать так чтобы при открытие документ проверял где он открыт? 
Если не во фрейме center то отрыться в Index.html фрейме "center"
И это должно выполняться в JavaScript.

PM MAIL   Вверх
y3u
Дата 10.9.2006, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: нет
Всего: 13



ну как вариант, у window есть parent, если window.parent == window, то у текущей страницы делаем просто замену урла

Код

if (window.parent == window) {
    var currentUrl = window.location; // возьмем текущий урл, чтобы подоткнуть его во фрейм
    window.location.replace("index.html"); // редиректимся на главную страницу без сохраннеия хистори браузера
    window.document.frames["center"].location.replace(currentUrl); // здесь надо акуратнее, т.к. если не написать 
//после window объект document это не будет работать в браузерах отличных от осла. 
//Доступаемся до фрейма и меняем ему его урл, снова без сохранения хистори
}    


соответственно, придется этот скрипт выполнять перед загрузкой каждой страницы. Поэтому, можно его в отдельный *.js файл положить и просто прописывать в начале каждой страницы к нему путь <script src="myScript.js"></script>. Обращаю внимание, что это не функция, а прям сразу код, т.е. в onload страницы пихать ничего не нужно

должно работать smile

Это сообщение отредактировал(а) y3u - 10.9.2006, 11:51


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
RinOS
Дата 11.9.2006, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.9.2006

Репутация: нет
Всего: нет



Да, идея правильная, но что то у меня ошибка, в IE6 просто открывается Index.html 
без загрузки во фрейм в веб - редакторе пишется тип ошибки:
Ошибка "window.document.frames.center.location" - есть null или не является обьектом"
Код 0

Просмотри пожалуста вот сдесь http:\\www.rinospro.narod.ru\Primer.rar всего 3 kb
PM MAIL   Вверх
y3u
Дата 11.9.2006, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: нет
Всего: 13



ой, дествительно... не проверил... соответственно, развиваю эту идею, Атцы могут быть против, т.к. это решение в лоб smile зато работает и в осле и в мозиле... smile 

Код

<script>
    if (window.parent == window) {
        var currentUrl = window.location;
        window.location.replace("index.html?startPage=" + currentUrl); // передадим стартовую страницу параметром
    }    
</script>


в index.html в самый низ после фреймов вставляем, опуская всякие проверки на null и пр...

Код

<script>
    window.document.frames["имя нашего фреймика"].location.replace(getParameter("startPage")); // а тут достанем этот параметр
    
                var params = window.location.search.replace("?", "").split("&"); 
// достаем параметры из реквеста, отрезаем знак вопроса, разрубаем по разделителю параметров

    function getParameter(paramName) {    
        for (i = 0; i < params.length; i++) {
            var paramEntry = params[i].split("=");
            if (paramEntry[0] == paramName) {
                return paramEntry[1];
            }
        }
    }
</script>



--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
y3u
Дата 12.9.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 440
Регистрация: 9.9.2006
Где: Москва

Репутация: нет
Всего: 13



кстати, параметры из урла вроде можно достать способом по проще, чем ручным разбором smile


--------------------
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах
PM MAIL   Вверх
RinOS
Дата 13.9.2006, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.9.2006

Репутация: нет
Всего: нет



Блин. Руки у меня что-ли кривые, опять не работет.
y3u  Посмотри пожалуйста вот тут там мои файлы архив с парой страничек. Если что то получится вот мой ящик [email protected] скинь.
PM MAIL   Вверх
RinOS
Дата 16.9.2006, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.9.2006

Репутация: нет
Всего: нет



Помогите плиз smile 
PM MAIL   Вверх
Sardar
Дата 26.9.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



RinOS, не выкладывай архив (с ним надо возиться smile ), лучше ссылку + ясное описание ошибки (тогда и код не всегда нужен).

Решение от y3u (второе) не плохое, только первую строку с window.document... ставить нужно последней (после var params, ибо пользуеться getParameter) и с условием что параметр startPage вообще существует (иначе дикая свистопляска с бесконечным релоадом может быть).

2y3u, в первом примере ты перезагрузил текущий документ первым replace, после этой строчки JS останавливаеться, т.к. страница умирает, отсюда должно быть ясно почему не работает.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
RinOS
Дата 27.9.2006, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.9.2006

Репутация: нет
Всего: нет



Пишу по подробнее в надежде что всётаки мы решим проблему:

1 страница может быть любая вот её код:
Код

<html>
<head>
<script>
if (window.parent == window) {
var currentUrl = window.location;
window.location.replace("index.html?" + currentUrl);
}
</script>
<title>Любая страница</title>
<h1>Cтраница должна загрузиться в index.html во фрейм "center"</h1>
</body>
</html>


2 страница index.html единственная вот её код:

Код

<html>
<head>
<script>
var params = window.location.search.replace("?", ""); \\Получаем адрес документа который выше
window.frames["center"].location.replace(params); \\Пытаемся загрузить в фрейм "center" 1 страницу, смысл в том чтобы в нем открылась 1 страница, но не получается помогите пожалуйста.
</script>

<title>Index.html</title>
</head>
<frameset  cols="180,100%" border="0">
    <frame src="menuframe.html" noresize>
    <frameset  rows="60,100%">
        <frame src="topframe.html" noresize>
        <frame name="center" src="files/domsite.html" noresize>
    </frameset>
</frameset>
</head>
</html>



PM MAIL   Вверх
Sardar
Дата 27.9.2006, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Во втором (index.html) файле скрипт ставь сразу после </frameset>. Сам скрипт дорабатываем:

Код
var params = window.location.search.substr(1); \\Получаем адрес документа который выше
if(params.length > 1)
   window.frames["center"].location.replace(params); \\Пытаемся загрузить в фрейм "center" 1 страницу



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
RinOS
Дата 28.9.2006, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 10.9.2006

Репутация: нет
Всего: нет



Блин опять не работат

Первый код такой же

Второй код (index.html)  при открывание 1 страничке открывается только index.html без загрузки во фрейм  smile  smile   smile 

Код

<html>
<head>
<title>Стартовая страница</title>
</head>
<frameset  cols="180,100%" border="0">
    <frame src="menuframe.html" noresize>
    <frameset  rows="60,100%">
        <frame src="topframe.html" noresize>
        <frame name="center" src="files/domsite.html" noresize>
    </frameset>
</frameset>
<script>
var params = window.location.search.substr(1);
if (params.length > 1)
   window.frames["center"].location.replace(params);
</script>
</head>
</html>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0625 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.