ОК, было много дискуссий по этой теме, но я не нашел ответа (см. Небезопасная попытка JavaScript получить доступ к фрейму в Google Chrome, Небезопасная попытка JavaScript для доступа к кадру с URL).
Вот моя ситуация:
У меня есть файл index.html, который выглядит так:
<frameset>
<frame src="a">
<frame src="b">
</frameset>
Затем 'a' выглядит так:
<script language='javascript'>document.domain = document.domain</script>
<img src='whatever.jpg' id='foo'/>
И 'b' выглядит так:
<script language='javascript'>
<!--
setTimeout(function() {
document.domain=document.domain
document.write('top domain is ' + document.domain)
document.domain = document.domain
top.a.document.images['foo'].src = 'something.jpg'
}, (5 * 1000));
//-->
</script>
Итак, в двух словах: a - это кадр с одним изображением в нем. b - это кадр, который должен автоматически изменять атрибут src ссылки изображения. Но Chrome несчастлив!
(Обратите внимание, что я добавил строки document.domain = document.domain в соответствии с комментариями ниже).
(Кроме того, обратите внимание, что 5-секундная задержка в кадре 'b' необходима, чтобы получить корректный URL-адрес для вызова.)
В соответствии с отладчиком Chrome js это вызывает "небезопасную попытку javascript для доступа к URL". Основываясь на других обсуждениях этой ошибки при переполнении стека, мне непонятно, есть ли какие-либо условия, при которых мне разрешено это делать. Эти файлы (index, a, b) полностью локальны на моей машине. Поэтому не должно быть никаких проблем с ними из разных доменов.
Любые идеи? Извините за повторную публикацию, но я нашел окончательный ответ...