Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Предупрежение во фрейме с исключеним своего сайта (https://javascript.ru/forum/events/78275-preduprezhenie-vo-frejjme-s-isklyuchenim-svoego-sajjta.html)

ksa 19.08.2019 12:33

Цитата:

Сообщение от WebDer
я не знаю чем заменить window.location.href

Я тебе это написал выше...
window.parent.location.href

Это адрес родителя. С ним и работай.
Если он конечно будет определен... :)

ksa 19.08.2019 12:33

Цитата:

Сообщение от WebDer
Скорее не чего, а кого. Того, кто бы мог прочитать задачу и подсказать решение.

Ты слеп. :(

WebDer 19.08.2019 12:35

Цитата:

Сообщение от ksa
Читай содержимое
window.parent.location.href

var url = window.parent.location.href;

приводит к Error: Permission denied to access property "href"

ksa 19.08.2019 12:41

Цитата:

Сообщение от WebDer
приводит к Error: Permission denied to access property "href"

Я тебе показал тестовый пример на котором у меня все работает.
https://javascript.ru/forum/events/7...tml#post511868

От тебя я пока не видел ничего... :no:
Пока только детские обидки ты писал...

WebDer 19.08.2019 12:46

Цитата:

Сообщение от ksa
От тебя я пока не видел ничего...
Пока только детские обидки ты писал...

:) Ты таки почитать попробуй, если правда есть желание помочь.

Какие нафик html-файлы.. (да ещё с подключением всяких фреймворков..)

WebDer 19.08.2019 12:59

Но если хочется htnl, то пож:

index.html
<html>
 <head>
  <meta charset="utf-8">
  <title>IFRAME TEST</title>
 </head>
 <body>  

 <iframe src="http://mysite/frame.html" width="100%" height="800px">

 </iframe>

 </body>
</html>


frame.html:

<html>
 <head>
  <meta charset="utf-8">
  <title>IFRAME TARGET</title>
  
<script type="text/javascript">  
var url = window.location.href;

if(url.indexOf("mysite.ru") != -1){

	if (self != top) {;
	document.write('<p style="margin:100px 0 300px 0; text-align:center">Это чужой сайт!<br><br> Настоявший адрес: <a href="'+ self.location.href + '" target="_top">' + self.location.href + '</a></p><hr>');
	}
}
</script>
 </head>
 <body>  

бла-бла-бла

 </body>
</html>


ЗЫ. На самом деле нет никаких ни index.html ни frame.html. Я работаю с CMS, где "файлы" генерятся автоматически. Индекс - это админка, в которой в ифрейме выводится сайт.

ksa 19.08.2019 13:21

Цитата:

Сообщение от WebDer
На самом деле нет никаких ни index.html ни frame.html.

Это без разницы... Главное чтобы ты мог с этим работать.

Вот полностью рабочий пример
tmp.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='https://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
</script>
</head>
<body>
<p>Text</p>
<iframe src="tmp1.html" style="height:60px"></iframe>
</body>
</html>

tmp1.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<!--
<script src='https://code.jquery.com/jquery-latest.js'></script>
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
if (window == top) {
	alert( 'Этот скрипт является окном верхнего уровня в браузере' );
} else {
	alert( 'Этот скрипт исполняется во фрейме!' );
	var url=window.parent.location.href;
	var arr=[
		'/vers/tmp/',
		'mysite.ru'
	];
	var re=new RegExp(arr.join('|'));
	if (!re.test(url)) {
		// Тут твоя реакция на сторонние домены
	}
}
</script>
</head>
<body>
<p>Test</p>
</body>
</html>

WebDer 19.08.2019 13:27

Цитата:

Сообщение от ksa
Вот полностью рабочий пример

Ну если словами не понятно, то как-то так:



И естественно, не работает.

ksa 19.08.2019 13:29

Цитата:

Сообщение от WebDer
то как-то так

Значит и тестовый пример твой фуфло - как-то так. :D

Как сделаешь путевый - дай знать. ;)

WebDer 19.08.2019 13:36

Цитата:

Сообщение от ksa
Значит и тестовый пример твой фуфло - как-то так.

Как сделаешь путевый - дай знать

Приходи помогать, когда научишься хотя бы смотреть в консоль.



И подставлять фейки с алертами ДО объявления var url=window.parent.location.href; можешь другим.


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