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

Posted

技术标签:

【中文标题】如果我使用 www,我可以从子域访问 iframe 的内容吗?在主域上?【英文标题】:Can I access contents of an iframe from a subdomain if I use www. on the main domain? 【发布时间】:2010-11-24 18:52:45 【问题描述】:

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

$('iframe').load(function()
  $('div.code textarea.html').val($(this).contents()[0].html());
);

当我运行它时,它说我无权从 www.domain.com 访问 example.domain.com。那么我尝试访问的域是否具有 www 是否重要?因为我的主机不允许我不用www。

【问题讨论】:

【参考方案1】:

Same-Origin-Policy 默认需要完全相同的主机名。

告诉它不要,设置:

document.domain= 'domain.com';

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

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

为避免这种情况,要么将事件处理程序包含为内联的 '

【讨论】:

这样做是否可以让子域访问域的cookies? 通过阅读“window.parent.document.cookie”,是的。但是,通过“domain”cookie 参数发送和接收 cookie 不受 document.domain 的影响。

以上是关于如果我使用 www,我可以从子域访问 iframe 的内容吗?在主域上?的主要内容,如果未能解决你的问题,请参考以下文章

尝试访问 iframe 内容(不同的子域);尝试设置 CORS

在 iframe 父级中访问 div

在 iframe 父级中访问 div

www是子域吗? [关闭]

跨子域 iframe 和 JavaScript

当域和协议匹配时获取 iframe 内容高度,但子域不匹配