Документация по политике Same Origin гласит:
Существует одно исключение из того же Правило происхождения. Сценарий может установить значение document.domain к суффиксу текущего домена. Если это так, более короткий домен используется для последующие проверки происхождения. Например, принять сценарий в документе в http://store.company.com/dir/other.html выполняет следующий оператор: document.domain = "company.com"; После это выражение выполняется, страница пройдет проверку происхождения с http://company.com/dir/page.html. Однако по тем же причинам company.com не может установить document.domain to othercompany.com.
Существует одно исключение из того же Правило происхождения. Сценарий может установить значение document.domain к суффиксу текущего домена. Если это так, более короткий домен используется для последующие проверки происхождения. Например, принять сценарий в документе в http://store.company.com/dir/other.html выполняет следующий оператор:
document.domain = "company.com";
После это выражение выполняется, страница пройдет проверку происхождения с http://company.com/dir/page.html. Однако по тем же причинам company.com не может установить document.domain to othercompany.com.
Все ли популярные браузеры поддерживают это? Если нет, то какие нет?
Firefox 2,3, IE6,7,8, Chrome и Safari 2 и 3, Opera 9 все поддерживают document.domain;
Вероятно, подойдут и другие "более новые" браузеры, однако это те, которые я на самом деле тестировал мой код (который использует document.domain)
Домен документа должен быть в нижнем регистре, а правила такие:
// Actual domain is "www.foo.com" document.domain = "foo.com"; // this is valid // Actual domain is "bar.foo.com" document.domain = "www.foo.com"; // this is invalid, "bar.foo.com" is not a subdomain of "www.foo.com" // Actual domain is "blah.bar.foo.com" document.domain = "bar.foo.com" // Ok document.domain = "foo.com" // Still ok document.domain = "bar.foo.com" // Invalid, you can't change it back to a more specific domain.