Всё только о JavaScript

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.