Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.02.2010, 18:02
Аспирант
Отправить личное сообщение для Flashton Посмотреть профиль Найти все сообщения от Flashton
 
Регистрация: 30.01.2010
Сообщений: 30

Перенаправление с отдельно открытого iframe, блокировка открытия в новой вкладке.
Здравствуйте все. В ходе написания сайта возникла пара трудностей, я знаю, что их можно решить с помощью JavaScript, но не знаю где найти эти скрипты.
1.) Я использую iframe, мне нужен скрипт, который будет следить, что бы страница из фрейма не была открыта отдельно. То есть если пользователь попадает на страницу фрейма, то автоматически перенаправляется на страницу, в составе которой находиться этот фрейм.
2.) Я использую плагин, который при нажатии на ссылку эффектно затемняет страницу, а по центру выводит фрейм. Если в Mozilla Firefox кликнуть, «открыть во вкладке», по ссылке вызывающей вот это эффектное открытие, то вместо окна в новой вкладке откроется страница, которая должна отображаться во фрейме. То есть мне нужно заблокировать открытие ссылки в новой вкладке или окне.
Если кто знает, подскажите, пожалуйста, или дайте ссылку, где есть эти скрипты.
------------------------------------------------
С уважением, Антон.
Ответить с цитированием
  #2 (permalink)  
Старый 24.02.2010, 18:53
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Самое тупое решение:
// код на основной странице
window.имя_свойства = true;

// код внутри фрейма
if(!window.top.имя_свойства){
  location.replace('URL на главную страницу');
}

Не тестил, но работать должно.
Ответить с цитированием
  #3 (permalink)  
Старый 24.02.2010, 18:57
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Ещё можно сравнивать внутри фрейма:
if(window !== window.top){
  location.replace('URL на главную страницу');
}

Так даже лучше
Ответить с цитированием
  #4 (permalink)  
Старый 24.02.2010, 19:35
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от B~Vladi
if(window !== window.top){
if (self == top) {
Ответить с цитированием
  #5 (permalink)  
Старый 25.02.2010, 00:06
Аспирант
Отправить личное сообщение для Flashton Посмотреть профиль Найти все сообщения от Flashton
 
Регистрация: 30.01.2010
Сообщений: 30

Спасибо за подсказки!
Я с JS пока ещё не очень хорошо знаком, если можно поподробнее, как эту функцию перенаправления реализовать наилучшим образом.
--------------------------------
С уважением, Антон.
Ответить с цитированием
  #6 (permalink)  
Старый 25.02.2010, 00:12
Аспирант
Отправить личное сообщение для Flashton Посмотреть профиль Найти все сообщения от Flashton
 
Регистрация: 30.01.2010
Сообщений: 30

То есть структура такая:
Основная страница:
<html>
<head>
<script type="text/javascript">
	window.name = true;
</script>
</head>


</html>


Фрейм:
<html>
<head>
<script type="text/javascript">
	if(!window.top.name){
        location.replace('index.html');
	}
</script>
</head>


</html>

Правильно? Поправьте, пожалуйста, если не правильно.
--------------------------
С уважением, Антон.
Ответить с цитированием
  #7 (permalink)  
Старый 25.02.2010, 01:20
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Сообщение от Kolyaj
if (self == top)
Ну или так.
Flashton, всё правильно. Лучше заменить скрипты другими примерами - так будет грамотнее
Ответить с цитированием
  #8 (permalink)  
Старый 25.02.2010, 17:37
Аспирант
Отправить личное сообщение для Flashton Посмотреть профиль Найти все сообщения от Flashton
 
Регистрация: 30.01.2010
Сообщений: 30

Спасибо!
Цитата:
Лучше заменить скрипты другими примерами - так будет грамотнее
В каком смысле?
--------------------------
С уважением, Антон.
Ответить с цитированием
  #9 (permalink)  
Старый 25.02.2010, 17:55
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

Код фрейма:

<html>
<head>
<script type="text/javascript">
	if(self == top){
            location.replace('index.html');
	}
</script>
</head>
</html>
Ответить с цитированием
  #10 (permalink)  
Старый 25.02.2010, 18:07
Аспирант
Отправить личное сообщение для Flashton Посмотреть профиль Найти все сообщения от Flashton
 
Регистрация: 30.01.2010
Сообщений: 30

Спасибо!
--------------------------
С уважением, Антон.
Ответить с цитированием
Ответ



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

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