Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Перенаправление с отдельно открытого iframe, блокировка открытия в новой вкладке. (https://javascript.ru/forum/dom-window/7874-perenapravlenie-s-otdelno-otkrytogo-iframe-blokirovka-otkrytiya-v-novojj-vkladke.html)

Flashton 23.02.2010 18:02

Перенаправление с отдельно открытого iframe, блокировка открытия в новой вкладке.
 
Здравствуйте все. В ходе написания сайта возникла пара трудностей, я знаю, что их можно решить с помощью JavaScript, но не знаю где найти эти скрипты.
1.) Я использую iframe, мне нужен скрипт, который будет следить, что бы страница из фрейма не была открыта отдельно. То есть если пользователь попадает на страницу фрейма, то автоматически перенаправляется на страницу, в составе которой находиться этот фрейм.
2.) Я использую плагин, который при нажатии на ссылку эффектно затемняет страницу, а по центру выводит фрейм. Если в Mozilla Firefox кликнуть, «открыть во вкладке», по ссылке вызывающей вот это эффектное открытие, то вместо окна в новой вкладке откроется страница, которая должна отображаться во фрейме. То есть мне нужно заблокировать открытие ссылки в новой вкладке или окне.
Если кто знает, подскажите, пожалуйста, или дайте ссылку, где есть эти скрипты.
------------------------------------------------
С уважением, Антон.

B~Vladi 24.02.2010 18:53

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

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

Не тестил, но работать должно.

B~Vladi 24.02.2010 18:57

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

Так даже лучше:)

Kolyaj 24.02.2010 19:35

Цитата:

Сообщение от B~Vladi
if(window !== window.top){

if (self == top) {

Flashton 25.02.2010 00:06

Спасибо за подсказки!
Я с JS пока ещё не очень хорошо знаком, если можно поподробнее, как эту функцию перенаправления реализовать наилучшим образом.
--------------------------------
С уважением, Антон.

Flashton 25.02.2010 00:12

То есть структура такая:
Основная страница:
<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>

Правильно? Поправьте, пожалуйста, если не правильно.
--------------------------
С уважением, Антон.

B~Vladi 25.02.2010 01:20

Цитата:

Сообщение от Kolyaj
if (self == top)

Ну или так.
Flashton, всё правильно. Лучше заменить скрипты другими примерами - так будет грамотнее:)

Flashton 25.02.2010 17:37

Спасибо!
Цитата:

Лучше заменить скрипты другими примерами - так будет грамотнее
В каком смысле?
--------------------------
С уважением, Антон.

B~Vladi 25.02.2010 17:55

Код фрейма:

<html>
<head>
<script type="text/javascript">
	if(self == top){
            location.replace('index.html');
	}
</script>
</head>
</html>

Flashton 25.02.2010 18:07

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


Часовой пояс GMT +3, время: 18:50.