Javascript / Firefox:window.innerHeight最小值似乎是100px

时间:2011-02-21 19:37:20

标签: javascript html css firefox

我有一个简单的javascript程序,表现得有点好笑。当我尝试将window.innerHeight指定为100px以下时,我的规范被覆盖,而使用的值为100px。

下面的代码不会像预期的那样创建一个30px高的内部窗口。相反,窗口是100px。警报同样读作“100”。

有关如何解决此问题的任何想法?

function loadVideo() {
    var args = fetchArguments();
    iframe = document.createElement("iframe");

    iframe.title = "YouTube video player";
    iframe.class = "youtube-player";
    iframe.type = "text/html";
    iframe.width = args["width"];
    iframe.height = args["height"];
    iframe.src = "http://www.youtube.com/embed/" + args["vid"];
    iframe.frameborder="0";
    iframe.allowFullScreen;

    document.getElementsByTagName("body")[0].appendChild(iframe); // we append the iframe to the document's body

    window.innerHeight= 30; //args["height"];
    window.innerWidth=args["width"];
    alert(window.innerHeight);
    self.focus();

}

2 个答案:

答案 0 :(得分:4)

Firefox不允许您创建高度或宽度小于100像素的窗口。这是一项安全限制。

答案 1 :(得分:2)

您应该使用数字而不是字符串设置window.innerHeight / innerWidth。在你的“args ['height']”变量周围抛出一个parseInt。

<强>更新

SoundCloud为他们的Flash播放器提供直接嵌入,以下是它的一个示例:

<object height="81" width="100%"> 
  <param name="movie" value="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F8407161"></param> 
  <param name="allowscriptaccess" value="always"></param> 
  <embed allowscriptaccess="always" height="81" src="http://player.soundcloud.com/player.swf?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F8407161" type="application/x-shockwave-flash" width="100%"></embed> 
</object>

请注意,您可以直接在&lt; object&gt;上设置高度和宽度值。标签。所以只需将嵌入标签写入弹出窗口的主体,将弹出高度设置为81px和宽度为任意(至少300px,所以看起来没问题)。

再次更新

这里真正的问题是如何在具有特定内容(读取html内容)大小的浏览器中打开弹出窗口。您可以在window.open中设置弹出窗口的大小,但这将是弹出窗口的总大小,包括浏览器镶边。