Подтвердить что ты не робот

Решение Chrome для document.domain

По какой-то причине хром больше не поддерживает document.domain и выплевывает ошибку, когда строка читается в iframe, содержащем поддомен и субдомен, содержащий iframe. В любом случае, вокруг?

Ошибка: нечистая ошибка: SECURITY_ERR: исключение DOM 18

4b9b3361

Ответ 1

Домен документа должен быть строчным, а правила таковы:

// 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. 

Ответ 2

document.domain должен работать в iframe, если вы находитесь в одном домене:

iframe=document.querySelector('iframe');
console.log(iframe.contentDocument.domain)

Если вы пытаетесь получить доступ к документу iframe, который находится в другом домене, чем родительский фрейм, вы получите сообщение об ошибке безопасности, которое вы видите.

Обратите внимание, что субдомены также считаются разными доменами, поэтому вы столкнетесь с проблемами перекрестных доменов: Вопрос о междоменном (субдомен) ajax-запросе