0

我正在尝试让 iframe B 与站点 A 进行通信。我进行了搜索和搜索,并且我读到的每一件事都说,如果它们属于不同的域(iframe src 来自子域),这是不可能的。

我想交流,因为我的公司在其页面上有广告,并且需要每 X 分钟刷新一次。如果它是一个正常的添加,这没关系,但有些添加扩展。就像我添加的那样,从 300x250 开始,然后到 800x300。我想与 iframe 沟通以了解添加何时会扩展,但这似乎不是一种方式。有没有办法让添加超出 iframe 的初始大小?

如果添加是 300x250,则 iframe 也将具有 300x250,但是当添加扩展时,它会被切断,所以我真的需要让 iframe 也扩展或者让添加超出 iframe 的大小。

任何人都知道如何做到这一点,或者有一些教程展示了如何与 iframe 进行一些基本的通信。

注意:有些网站还提供具有完全不同域的添加,因此如果有人知道如何使其超越 iframe,那就太好了。

谢谢

4

4 回答 4

2

如果您希望两个 iframe 进行通信,并且您说其中一个位于不同的子域但相同的顶级域上,则可以执行帧间脚本。请参阅http://ajaxian.com/archives/how-to-make-xmlhttprequest-calls-to-another-server-in-your-domain

诀窍是让页面 A 和 B 都设置

document.domain = 'SameTopLevelDomain.com';

然后浏览器将让页面进行通信(例如从其他页面获取数据、调用函数等)。

但是,如果这两个页面完全位于不同的域中,则您必须采用前面回答的服务器端代理方法。

于 2009-01-16T16:27:44.360 回答
1

出于安全原因,您不能跨越 iframe 边界,如果可能的话,很容易将您的登录凭据窃取到任何站点。

但是,您可以制作服务器端代理,它将每个查询从 iframe 重定向到广告服务器。这样,您的 iframe 实际上可以在同一域(或子域)中具有源

于 2009-01-16T16:19:34.407 回答
0

也许我的回答Cross-site AJAX requests会对你有所帮助。

于 2009-01-16T17:24:02.967 回答
0

有一种使用 iframe 进行跨域通信的方法,在Resizing an iframe based on content的答案中进行了描述。

许多广告服务公司通过 iframe 在您的网站上投放横幅,并使用上述答案中概述的技术来确保 iframe 可以扩展到广告素材所需的全部尺寸。

于 2009-01-18T13:25:28.127 回答