Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Определить скриптом отображается ли сайт во фрейме (https://javascript.ru/forum/misc/73756-opredelit-skriptom-otobrazhaetsya-li-sajjt-vo-frejjme.html)

Sonya 12.05.2018 12:28

Определить скриптом отображается ли сайт во фрейме
 
Здравствуйте! Подскажите пожалуйста, можно ли js или php скриптом определить отображается ли сторонний сайт во фрейме?

j0hnik 12.05.2018 12:56

Можно
var loc = document.location.host;
var fr = document.querySelector("iframe").src;
if(/https*:\/\//.test(fr) && !(fr.includes(loc)) ) alert('Сторонний Iframe');

Sonya 12.05.2018 13:24

Большое спасибо, но немного не то. Мне надо узнать отобразился ли сторонний сайт, в моем фрейме. Если, например, я укажу ссылку во фрейме https://www.yandex.ru/, то скрипт выведет alert-ом "Сторонний Iframe", но сам сайт не отобразится (политика Яндекса). Заметила, что при клике правой кнопкой мышки, если сайт отображается, то в меню браузера есть пункт, "Просмотр код фрейма", если сайт не отображается во фрейме, то этого пункта нет.

j0hnik 12.05.2018 13:35

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

Sonya 12.05.2018 13:57

Нет, наоборот, сайты должны отображаться во фрейме. Сделала форму проверки сайтов во фрейме. Визуально, я вижу отображается ли сайт или нет, после ввода адреса сайта в поле формы, и нажатия кнопки "Проверить" (он появляется ниже формы), и вот здесь у меня вопрос, можно ли это проверить скриптом. Условно говоря ввела в поле ссылку, нажала "Проверить", и вместо визуального проявления, приходит ответ на запрос "Ok" или "NO". Вот, что я имею ввиду.

j0hnik 12.05.2018 14:12

Все адреса будут абсолютные?

Sonya 12.05.2018 14:17

Да

j0hnik 12.05.2018 14:20

<input type="text">ссылка <button>проверить</button>
<script>
	document.querySelector("button").onclick = function(){
		var loc = document.location.host;
		var fr = document.querySelector("input").value;
		alert(/https*:\/\//.test(fr) && fr.includes(loc) || !(/https*:\/\//.test(fr)) ?'OK':'NO');
	};	
</script>


В общем так.
Валидацию адресов не производит. если ссылка не абсолютна, то считает что эта страница может относится к данному домену.

Sonya 12.05.2018 14:34

Сейчас на все абсолютные адреса показывает "NO", даже те которые корректно отображаются во фрейме.

j0hnik 12.05.2018 14:48

Sonya,
скрипт корректность отображения не проверяет, проверяет принадлежат ли адрес который вы ввели данному домену


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