Можно ли определить, была ли страница вставлена ​​в определенный домен? - PullRequest
3 голосов
/ 30 января 2011

Возможно ли проверить, если страница создается в определенном домене с JavaScript?

Как это:

if (window!=window.top){
   if (this page is iframed by www.foo.com){ // load foo's special navigation bar}
   if (this page is iframed by www.bar.com){ // load bar's special navigation bar}
} else { //load normal navigation bar }

Ответы [ 2 ]

3 голосов
/ 30 января 2011

Попробуйте

var parentLocation='';
if(window.parent && document.referrer)
    parentLocation = document.referrer;
alert(parentLocation);

Вы должны увидеть URL родительской страницы в окне предупреждения. А остальное, как говорится, история ...

0 голосов
/ 30 января 2011

РЕДАКТИРОВАТЬ / ОБНОВИТЬ: Хотя возможно получить доменное имя родительского iframe, я не хотел удалять этот ответ, так как есть некоторая полезная информация для пониманията же политика в отношении доступа к DOM.Ответ Soumya92 доказывает, что iframe в одном домене действительно может извлечь домен родительского домена.

Однако остальная информация о доступе к DOM остается верной.

Оригинальный ответ

К сожалению, это просто пока невозможно в большинстве браузеров, и это определенно невозможно, если оба сайта не дали разрешение другим доменам на доступ к данным каждого домена, установив свойство document.domain.Даже в этом случае он будет работать только с поддоменами.

Например, foo.example.com и bar.example.com могут обращаться к DOM друг друга, если на обеих HTML-страницах установлено значение document.domain свойство выглядит так:

// allow foo.example.com and bar.example.com to communicate
document.domain = "example.com";  

Если вы пытаетесь проверить, является ли www.foo.com родительским документом, загруженным из www.bar.com, вы не сможете сделать это, поскольку iframe будетне имеют доступа к top.window.

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

Кроме того, вы не сможете определить какие-либо подробности относительно того, какой домен загружает ваш документ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...