iFrame在Android + PhoneGap上更改window.innerHeight / window.innerWidth

时间:2012-03-07 14:55:22

标签: android cordova

我正在使用PhoneGap for Android创建应用。应用程序中的一个页面包含一个比其他页面大的iFrame(带有本地内容)(这是一个单页应用程序)。

我遇到的问题是,一旦查看了iFrame页面,window.innerHeight和window.innerWidth JavaScript对象会更改其值以匹配iFrame的宽度/高度,这会导致其余的“页面”显示不正确,因为它们的大小不同。

即使我从DOM中删除了iFrame,这仍然存在。

有没有人遇到这个问题或有解决方法的想法?

2 个答案:

答案 0 :(得分:1)

我只是处于相同的情况,并且我也删除了iframe,(对我有用的)解决方案是将下一个放在您的html头中:


<meta name="viewport" content="width=device-width, initial-scale=1">


尽管这部分总是不必要的,因为innerWidth和innerHeight在桌面上不会很复杂,但是我花了6个小时。

我想知道它是否对您有用,再见。

答案 1 :(得分:0)

首先,确定这里有一个错误!

我刚才有同样的问题并解决了,这是怎么回事。 我改变了所有的iframe和&amp;对于宽度大于window.innerWidth的图像宽度为100%或更小。

以下是相应的HaxeJS代码:

    resizeNodeChildrenTag(_contentContainer,"iframe");
    resizeNodeChildrenTag(_contentContainer,"img");


private function resizeNodeChildrenTag(node:HtmlDom, tagName:String):Void
{
    var tagNodes:HtmlCollection<HtmlDom> = node.getElementsByTagName(tagName);
    // for all nodes with the given tag name
    for (i in 0...tagNodes.length)
    {
        if(tagNodes[i].clientWidth > Lib.window.innerWidth)
            tagNodes[i].setAttribute("width", "96%");
            tagNodes[i].setAttribute("height", "");
        }
    }
}