我正在尝试访问和编辑iframe的内容。 iframe指向我自己域上子域的页面。这是我正在使用的javascript代码,虽然它并不重要。
$('iframe').load(function(){
$('div.code textarea.html').val($(this).contents()[0].html());
});
当我运行它时,它表示我无权访问www.domain.com上的example.domain.com。因此,如果我尝试访问的域名具有www,那么这是否重要?因为我的主持人不允许我不使用www。
答案 0 :(得分:21)
Same-Origin-Policy默认需要完全相同的主机名。
告诉它不要,设置:
document.domain= 'domain.com';
来自父(www。)文档和iframe(示例。)文档中的脚本。
请注意,从脚本设置静态编写的iframe(或图像)的onload是不可靠的,因为可以想象iframe可能在解析器读取iframe标记和读取脚本之间完全加载用于设置onload的标记。
要避免这种情况,请将事件处理程序包含为内联'< iframe onload =“doSomething()”'属性(内联事件处理具有某些目的的少数几个地方之一),或者,如果可访问性可接受,从脚本创建iframe元素,在编写src之前设置onload并将其添加到页面中。