我有一个简单的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();
}
答案 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中设置弹出窗口的大小,但这将是弹出窗口的总大小,包括浏览器镶边。