【发布时间】:2017-10-20 02:04:19
【问题描述】:
我有一个网站,它在 iframe 中嵌入了媒体播放器。媒体播放器和站点在同一个域中,防止跨域问题。每个页面,主页面以及媒体播放器页面,都有一些代码可以找到任何父 iframe 的高度和宽度:
var height = $(parent.window).height();
var width = $(parent.window).width();
到目前为止没有问题......直到:
一位客户希望将我的网站嵌入到他自己网站的 iframe 中。他的网站位于不同的域中。现在,我的 iframe 在另一个 iframe 中,我的代码抛出了跨域错误。
以下不会抛出错误:
var test1 = parent.window; // returns my site
var test2 = window.top; // returns client site
以下确实会引发跨域错误:
var test3 = parent.window.document;
var test4 = $(parent.window);
var test5 = window.top.document;
var test6 = $(window.top);
如何在不出现跨域错误的情况下获取域中 iframe 的高度?我希望有一个纯 javascript/jQuery 解决方案。
不适用于我的解决方案的选项是:
- 使用 document.domain 将站点列入白名单。
- 修改 web.config 以将该站点列入白名单。
就像在《盗梦空间》中一样,我必须更深入。请帮忙。
【问题讨论】:
标签: javascript jquery iframe cross-domain same-origin-policy