document.domain
, location
и InternetExplorerПроблема: если мы установим свойство document.domain
, то мы не сможем после этого получить доступ к свойству
location
в браузерах IE6 и IE7. Это хорошо иллюстрирует следующий код.
try {
document.write('Берём location... ');
var l = location.href;
document.write('<span style="color: green;">Success!</span><br>');
document.write('Устанавливаем document.domain... ');
document.domain = document.domain;
document.write('<span style="color: green;">Success!</span><br>');
document.write('Берём location... ');
l = location.href;
document.write('<span style="color: green;">Success!</span><br>');
} catch(e) {
document.write('<span style="color: red;">Error: ' + e.message + '</span>');
}
Который в IE6 и IE7 выведет
Берём location... Success!
Устанавливаем document.domain... Success!
Берём location... Error: Разрешение отклонено
В силу этого, если вы устанавливаете document.domain
и вам необходим доступ к location
, то кэшируйте значения свойств объекта location
до установки document.domain
.