如果我使用www,我可以从子域访问iframe的内容吗?在主域?

fen*_*ent 13 javascript permissions iframe jquery

我正在尝试访问和编辑iframe的内容.iframe指向我自己域上子域的页面.这是我正在使用的javascript代码,虽然它并不重要.

$('iframe').load(function(){
  $('div.code textarea.html').val($(this).contents()[0].html());
});
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它表示我无权从www.domain.com访问example.domain.com.因此,如果我尝试访问的域名具有www,那么这是否重要?因为我的主持人不允许我不使用www.

bob*_*nce 21

默认情况下,Same-Origin-Policy需要完全相同的主机名.

要告诉它不要,设置:

document.domain= 'domain.com';
Run Code Online (Sandbox Code Playgroud)

来自父(www.)文档和iframe(示例.)文档中的脚本.

请注意,从脚本设置静态编写的iframe(或图像)的onload是不可靠的,因为可以想象iframe可能在解析器读取iframe标记和读取设置的脚本标记之间完全加载上传.

要避免这种情况,请将事件处理程序包含为内联'<iframe onload ="doSomething()"'属性(内联事件处理具有某些目的的少数几个地方之一),或者,如果可访问性可接受,则创建iframe元素它本身来自脚本,在写入src之前设置onload并将其添加到页面中.