更新:问题只发生在使用“父”的代码中。变量。删除该代码解决了问题:
我正在尝试在iframe中展示在线实验,但是当参与者可以开始实验时,只要他们经过第一页我就会收到错误:
“未捕获DOMException:阻止具有原始”https://www.open-collector.org“的帧访问跨源帧。”
您可以在以下位置查看此示例:
Dropbox文档(https://dl.dropbox.com/s/did85omief3j48o/iframe_in_iframe.html?dl=0)所引用的实验也在https://open-collector.org
上创建嵌入Dropbox文件的iframe的代码是:
<iframe id='notebook_iframe'></iframe>
<script>
$.get("https://dl.dropbox.com/s/did85omief3j48o/iframe_in_iframe.html?dl=0", function(html_data){
page_content.html = html_data;
var doc = document.getElementById('notebook_iframe').contentWindow.document;
doc.open();
doc.write(html_data);
doc.close();
});
</script>
Dropbox文件中的代码是:
<iframe id='experiment_1' src='https://www.open-collector.org/badger/sqlExperiment.php?experiment_id=RPDTXczwd6HU5FyG|55&participant=preview' style='width:800px; height:800px'></iframe>
我已阅读this page但我的问题涉及同一域名的内容。我也读过this page about pdfs,但我不认为它适用,因为我没有将pdf写入iframe。
我认为它开始工作,然后在iframe移动到域内的其他网页时停止,这意味着问题在于更改网页而不是域,尽管有警告?
P.S。不幸的是,有必要在一个框架内嵌入一个框架,以防万一这会加剧问题。