如何让你的 iframe 适合 100% 的内容(使用 JavaScript)的问题已经在论坛上得到了解答...... 对于仅显示来自同一域的内容的 iframe.

我的问题:当 iframe src 属性用于包含框架的页面域之外的页面时,是否可以调整 iframe 的大小以适应内容?围绕跨站点脚本的浏览器安全功能阻止我访问 iframe 的文档对象。

我正在寻找任何创造性的解决方案。我的想法之一是以某种方式检测滚动条在 iframe 上是否可见,并逐渐增加高度,直到滚动条不可见为止。不幸的是我也找不到任何方法来检测可见的滚动条。有想法吗?

请注意,我正在寻找客户端解决方案。

回应:


戴夫

问题仍然存在 - 我不提前知道远程文档的高度,所以我无法从数据库或查询字符串值设置它。


杜软件

CSS 中 iframe 上的 100% 不会将其设置为 100% 的内容 里面 iframe,但相对于页面或包含元素(即 div 或其他元素)。

有帮助吗?

解决方案

(我的回答 类似的问题)

这是 不可能 由于浏览器的安全模型,无需对 iframe 页面进行某些控制即可执行此操作。如果可能的话,这将是一个安全问题,必须予以解决。

虽然让嵌入网站知道第三方网页嵌入页面时的高度似乎无害,但这可能会将浏览器用户想要保密的信息泄露给嵌入网站。例如, http://www.facebook.com/ 根据您是否登录而呈现不同的效果,所以如果我的网站可以计算出高度 <iframe src="http://www.facebook.com/"> 然后我就可以知道您是否是 Facebook 用户,您可能不想让我知道这一点。

信息泄露类似于臭名昭著的事件 CSS 历史泄露 哪些浏览器供应商必须插入。

其他提示

  

是否有可能调整的iframe时的iframe src属性为页面包含帧的网页的域的外部以适应内容?

有可能绕过跨站点的限制,并有一个iframe设置为高度的它的内容,但它可以是一个有点尴尬得到它的工作。

的解决方案涉及通过具有iFrame内容本身iframe中的同一服务器父页面,可与之通信上的页周围的安全模型的工作。我在这里回答了类似的问题,这之前,它出现在上设置了这一切的来龙去脉详细的公平位。

这是所描述的方法需要注意的是,你必须让你的iFrame内容本身iframe中父服务器上的网页的手段。这通常是achieveable当iFrame内容是作为有站点之间商定的合作的一部分,但YMMV。

这听起来像你正在试图解决的是放在适当的位置一个很好的理由一项安全功能......

是否调整大小一定是通过脚本?你可以重定向到iframe的大小是从查询字符串,或数据库,或配置文件等采取的页面。

有关CSS使用100%呢?滚动条可以在iframe中被禁用,但随后用户将不能够滚动。

这就是JS / XSS预防,所以挺过来了,并试图拉在服务器端的内容,并通过本地连接服务于它。

这是理论上的,因为我没有测试:

  
    

1)PHP保存远程页面划分为     使用本地HTML文件     file_get_content()或使用卷曲。 2)投票加载本地文件到     IFRAME      - 这是现在本地和安全问题不适用

  

如果有JavaScript的增值经销商或会话瓦尔(不能从远程内容拉),你至少可以使用这种技术来查询您的本地文件的文件的高度,设置相应的iframe,那么远程URL加载到调整iframe中。

Cavat:你无法知道远程页内页改变网址,因此可以只使用该技术的第一页上的方式。如果远程网页都是相同的高度,这是没有问题的。

不是最好的解决方案,但你可以尝试:

javascript写iframe中,在设置在URL#H700当前高度为700像素等iframe应用程序;然后使用一个循环来监听“在JavaScript”读取SRC =“URL#H700”和由设置iframe的高度上主机站点这种变化。

scroll top