Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.08.2019, 12:05
Интересующийся
Отправить личное сообщение для WebDer Посмотреть профиль Найти все сообщения от WebDer
 
Регистрация: 19.08.2019
Сообщений: 11

Предупрежение во фрейме с исключеним своего сайта
Пытаюсь сделать примитивную защиту от показа своего сайта во фремах.
Вывести предупреждение получилось, но необходимо, чтобы его не было на моём сайте.
Погуглив, я собрал код ниже, но он выводит предупреждение и на своём.

Помогите пож изменить, чтобы предупреждения его не было при открытии во фреймах(ифрейме) на своём сайте

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>');
	}
}
Ответить с цитированием
  #2 (permalink)  
Старый 19.08.2019, 12:13
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,122

Сообщение от WebDer
Пытаюсь сделать примитивную защиту от показа своего сайта во фремах.
Дык!
Цитата:
Свойство top позволяет легко проверить, во фрейме ли находится текущий документ
if (window == top) {
  alert( 'Этот скрипт является окном верхнего уровня в браузере' );
} else {
  alert( 'Этот скрипт исполняется во фрейме!' );
}
https://learn.javascript.ru/iframes
Ответить с цитированием
  #3 (permalink)  
Старый 19.08.2019, 12:14
Интересующийся
Отправить личное сообщение для WebDer Посмотреть профиль Найти все сообщения от WebDer
 
Регистрация: 19.08.2019
Сообщений: 11

Забыл сказать
Замена
window.location.href
на
window.top
приводит к ошибке в консоли
Error: Permission denied to access property "indexOf"
Ответить с цитированием
  #4 (permalink)  
Старый 19.08.2019, 12:16
Интересующийся
Отправить личное сообщение для WebDer Посмотреть профиль Найти все сообщения от WebDer
 
Регистрация: 19.08.2019
Сообщений: 11

Сообщение от ksa
легко проверить,
Проверить наличие фрейма не проблема.
У меня проблема сделать исключение для своего домена. А еще лучше - для "белого списка", а то вдруг понадобится где-то ещё разрешить.

Последний раз редактировалось WebDer, 19.08.2019 в 12:19.
Ответить с цитированием
  #5 (permalink)  
Старый 19.08.2019, 12:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,122

Сообщение от WebDer
Помогите пож изменить, чтобы предупреждения его не было при открытии во фреймах(ифрейме) на своём сайте
Как вариант...
Главная страница
<!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>
<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'>
alert(window.parent.location.href)
</script>
</head>
<body>
<p>Test</p>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 19.08.2019, 12:25
Интересующийся
Отправить личное сообщение для WebDer Посмотреть профиль Найти все сообщения от WebDer
 
Регистрация: 19.08.2019
Сообщений: 11

Сообщение от ksa
Как вариант...
Может всё же стоит почитать вопрос/задачу?
Ответить с цитированием
  #7 (permalink)  
Старый 19.08.2019, 12:30
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,122

WebDer, а чего тебе теперь не хватает для ее решения?
Ответить с цитированием
  #8 (permalink)  
Старый 19.08.2019, 12:30
Интересующийся
Отправить личное сообщение для WebDer Посмотреть профиль Найти все сообщения от WebDer
 
Регистрация: 19.08.2019
Сообщений: 11

Грубо говоря я не знаю чем заменить window.location.href чтобы можно было вычислить адрес главного окна и что бы оно работало - не вызывало ошибок indexOf.
Ну или может есть какой-то др. метод вывести предупреждение на чужом, не выводя на своём (или белом списке в идеале)
Ответить с цитированием
  #9 (permalink)  
Старый 19.08.2019, 12:32
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,122

Сообщение от WebDer
У меня проблема сделать исключение для своего домена. А еще лучше - для "белого списка", а то вдруг понадобится где-то ещё разрешить.
Читай содержимое
window.parent.location.href

и делай выводы...
Ответить с цитированием
  #10 (permalink)  
Старый 19.08.2019, 12:33
Интересующийся
Отправить личное сообщение для WebDer Посмотреть профиль Найти все сообщения от WebDer
 
Регистрация: 19.08.2019
Сообщений: 11

Сообщение от ksa
а чего тебе теперь не хватает для ее решения?
Скорее не чего, а кого. Того, кто бы мог прочитать задачу и подсказать решение.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
background resize IceDvl jQuery 4 25.04.2014 17:54
создание своего сайта help sovereignsouls Элементы интерфейса 1 24.02.2013 10:36
передача данных из форм своего сайта в формы стороннего сайта najrobi Общие вопросы Javascript 19 15.07.2012 22:18
Библиотека для своего сайта Vladiator Общие вопросы Javascript 9 11.11.2011 18:29