Не удается получить родительский документ из iframe
У меня есть главная страница для перехода на другие 3 страницы в iframe
Главная страница: 1.html
Другие 3 страницы: one.html, two.html, 3.html.
Код
1.html
<html>
<body>
<div>
<ul>
<li style="float:left; margin:20px;"><a href="One.html" target="target">One</a></li>
<li style="float:left; margin:30px;"><a href="Two.html" target="target">Two</a></li>
<li style="float:left; margin:50px;"><a href="Three.html" target="target">Three</a></li>
</ul>
<iframe id="target"></iframe>
</div>
</body>
</html>
one.html
<html>
<body onload="try{alert(parent.location.href);} catch(e){alert(e);}">
1.html.
</body>
</html>
Но есть проблема, показывающая расположение parent
-документа. Это дает предупреждающее сообщение в следующих случаях:
SecurityError: Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match.
Может кто-нибудь объяснить смысл терминов, используемых в сообщении, в контексте этой ошибки или просто почему это произошло???
N.B.: сервер не используется
Ответы
Ответ 1
Chrome довольно строго предполагает, что между локальными файлами нет связи.
На Mac вы можете запустить Chrome с терминала следующим образом:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --allow-file-access-from-files
и он будет работать, но лучше всего использовать веб-сервер.