好的,关于这个主题已经有很多讨论,但我还没有找到答案(例如,请参阅Unsafe JavaScript attempt to access frame in Google Chrome,Unsafe JavaScript attempt to access frame with 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”行。)
(另请注意,帧'b'中的5秒延迟是获得呼叫的有效URL所必需的。)
根据Chrome js调试器,这导致“不安全的javascript尝试访问url”。根据Stack Overflow上关于此错误的其他讨论,我不清楚是否有任何条件允许我这样做。这些文件(索引,a,b)在我的机器上完全是本地的。所以不应该对来自不同领域的他们产生任何担忧。
有什么想法吗?很抱歉重新发布,但我已经找到了明确的答案......