是否可以从内部更改 iframe 的宽度/高度
Posted
技术标签:
【中文标题】是否可以从内部更改 iframe 的宽度/高度【英文标题】:is it possible to Change the width/height of an iframe from within 【发布时间】:2013-08-17 09:23:11 【问题描述】:我将在网站中托管我的应用程序。该应用程序将显示在其中的 iframe 中。 我需要我的应用程序全屏显示,无论如何我可以在哪里更改 iframe 的大小,该 iframe 将从我的应用程序中保存我的应用程序? 我的应用和托管它的网站不是同一个域。
$("iframe", window.parent.document).css("width", "1000px");
这不起作用,因为站点和应用程序不属于同一域
【问题讨论】:
我认为如果它们不在同一个域中,您会发现这很困难。更不用说这是不受欢迎的! 我认为你需要使用attr('width', '1000px')
。但它只有在 iframe 属于同一个域时才有效。
@Neurofluxation 是的,我无法将我的应用程序更改为全屏模式
@jcubic 我也试过了!!它没有工作
别担心,这里有一个更成熟的答案:***.com/questions/5908676/…
【参考方案1】:
如果你控制两个页面,那么你可以使用 html5 Post 消息:
外面:
$(window).bind("message", function(e)
$('iframe').attr(
width: e.originalEvent.data.width,
height: e.originalEvent.data.height
);
);
内部:
$('button').click(function()
parent.postMessage(width: '200px', height: '200px', 'http://localhost');
);
【讨论】:
不,我无法控制它!有没有其他方法可以改变它??感谢和 +1 的回答【参考方案2】:如果您的应用需要全屏运行,最明智的方法是跳出 iframe。也就是说,检测您的页面是否在 iframe 中,如果是,则将浏览器重定向到您的页面,以便该页面不再在 iframe 中!
This page 解释了如何做到这一点:
<script type="text/javascript">
if (top.location!= self.location)
top.location = self.location.href;
</script>
【讨论】:
这种否定了问题的全部意义,即调整iframe的大小。 @Neurofluxation 但问题已经得到解答。那是“不”。因此,OP 将不得不寻找其他方法来实现他们想要的(即全屏显示应用程序)。将我的答案视为“B 计划”,或最后的努力。 我会放过你的 ;) 投票支持解释。道歉!!以上是关于是否可以从内部更改 iframe 的宽度/高度的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 javascript 从 iframe 内部获取 iframe 的高度?具有多个 iframe 的页面呢?
根据内部更改的内容动态调整 jQuery Fancybox 的 iframe 高度