Есть ли случай, когда self.location! = Document.location? - PullRequest
3 голосов
/ 03 июля 2010

В JavaScript есть ли случай, когда self.location != document.location?

Ответы [ 4 ]

4 голосов
/ 03 июля 2010

Свойство window.self является ссылкой на window, а window.location является тем же объектом, что и document.location.

Таким образом, единственная возможность получить это выражение, чтобы быть истинным, этопереопределить либо self, либо document.

1 голос
/ 03 июля 2010

Полагаю, это зависит от объема.Насколько я знаю, можно (пере) определить self в объекте или даже в глобальной области видимости, поэтому в этом случае self.location ничего не будет указывать.Вот так:

//[in global scope]
var self = new SomeObject;
alert(self.loction); //undefined

//in a constructor
function SomeObject(){
  var self = this;
  alert(self.location); //undefined
}

Итог кажется: не слепо зависите от наличия self в качестве псевдонима для document

0 голосов
/ 04 июля 2010

Поскольку я не могу оставить комментарий, по всей видимости self.location == document.location == window.location в рамке. Только top.location отличается. (Протестировано в Firefox 3.6.6 и Internet Explorer 8)

0 голосов
/ 04 июля 2010

document.location - это строка , а не объект, и это было заменено document.URL.

URL, перенаправленный сервером, не должен обновлять window.location, но document.URL всегда показывает путь к текущему документу.

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