我想让iframe B与网站A进行通信。 我进行了搜索和搜索,我读到的每一件事都表明,如果它们属于不同的域(iframe src来自子域),那是不可能的。
我想要沟通,因为我的公司在其网页上有广告,并且需要每隔X分钟刷新一次。如果它是正常的添加,这是可以的,但有些增加了扩展。就像我添加的那样,从300x250开始,然后达到800x300。 我想与iframe沟通以了解添加内容何时扩展,但它似乎不是一种方式。有没有办法让添加超出iframe的初始大小?
如果添加量是300x250,那么iframe也会有300x250,但是当添加扩展时它会被切断,所以我真的需要让iframe扩展,或者让add超出iframe的大小。< / p>
任何人都知道如何执行此操作,或者有一些教程说明如何与iframe进行一些基本的通信。
注意:有些网站也提供了具有完全不同域名的添加内容,因此如果有人知道如何使其超越iframe,那就太棒了。
由于
答案 0 :(得分:2)
如果您希望两个iframe进行通信,并且您说其中一个位于不同的子域但相同的顶级域,则可以执行帧间脚本编写。请参阅http://ajaxian.com/archives/how-to-make-xmlhttprequest-calls-to-another-server-in-your-domain。
诀窍是将页面A和B都设置为
document.domain = 'SameTopLevelDomain.com';
然后浏览器会让页面进行通信(例如从其他人那里获取数据,调用函数等)。
但是,如果两个页面完全位于不同的域中,则必须采用服务器端代理方法,如前所述。
答案 1 :(得分:1)
出于安全原因,您无法跨越iframe边界,如果可能,您可以直接将登录凭据窃取到任何网站。
但是,您可以创建服务器端代理,这会将每个查询从iframe重定向到广告服务器。这样你的iframe实际上可以在同一个域(或子域)中拥有源
答案 2 :(得分:0)
也许我的回答Cross-site AJAX requests会对你有帮助。
答案 3 :(得分:0)
有一种方法可以使用iframe进行跨域通信,在Resizing an Iframe based on content的答案中有所描述。
许多广告服务公司通过iframe在您的网站上提供横幅广告,并使用上述答案中列出的技术确保iframe可以扩展到广告素材的完整所需尺寸。