我想通過javascript打開一個最大化的彈出窗口。我使用下面的代碼:在IE中通過JavaScript最大化彈出窗口的大小和位置
window.open('./foobar.html', 'foobar', 'scrollbars=no,location=no,menuBar=no,resizable=yes,status=no,toolbar=no,width='+screen.availWidth+',height='+screen.availHeight+'');
它顯然適用於所有非IE瀏覽器,我得到一個使用全屏幕的彈出窗口。在Internet Explorer(11)中,它取決於站點所在的安全區域。服務器位於本地Intranet中,如果使用IP地址訪問站點,則IE切換到「Internet」區域,彈出窗口按預期打開。
如果我使用主機名,IE會使用「本地Intranet」區域,並且彈出窗口的位置突然全部錯誤(在左下角的右下方几個像素),這也是一個小問題比可用屏幕尺寸大一點。
我嘗試使用screen.height代替screen.availHeight,我也刪除了所有其他變量(滾動條,位置,菜單欄,...),但結果並沒有改變。
到目前爲止,我的解決方案是將主機名添加到「可信站點」區域或將「本地Intranet」區域的安全級別提高到「中」。然後它就像在其他瀏覽器中那樣工作。
顯然我想知道這裏發生了什麼。上面的JavaScript代碼如何因區域而異?我怎樣才能在IE中通過JavaScript打開一個最大化的彈出窗口而不用配置任何區域,站點或安全級別?
這不起作用,因爲彈出窗口比我提到的屏幕大幾個像素。將它移動到(0,0)也可能會導致雙屏幕設置中不需要的行爲。您也可以在彈出選項中使用top = 0和left = 0。 – black666
如果彈出窗口的像素較大,可以使用 popup.resizeTo(screen.width,screen.height); 我不太確定雙屏幕.. :( – 4dgaurav