2012-05-25 73 views
1

我已經在我的MVC代碼中應用了一個jquery函數,用於在按鈕單擊時以全屏模式顯示當前窗口。這裏是它的jQuery: -如何在全屏模式下打開當前窗口在按鈕單擊IE8

function FullScreen() { 
    if ((document.fullScreenElement && document.fullScreenElement !== null) || // alternative standard method 
    (!document.mozFullScreen && !document.webkitIsFullScreen)) { // current working methods 
     if (document.documentElement.requestFullScreen) { 
      document.documentElement.requestFullScreen(); 
     } else if (document.documentElement.mozRequestFullScreen) { 
      document.documentElement.mozRequestFullScreen(); 
     } else if (document.documentElement.webkitRequestFullScreen) { 
      document.documentElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); 
     } 
    } else { 
     if (document.cancelFullScreen) { 
      document.cancelFullScreen(); 
     } else if (document.mozCancelFullScreen) { 
      document.mozCancelFullScreen(); 
     } else if (document.webkitCancelFullScreen) { 
      document.webkitCancelFullScreen(); 
     } 
    } 
} 

我已經調用了onclick事件標籤的這個函數。 使用此功能,我可以在Chrome和Mozilla上的全屏模式下按下按鈕並打開我的窗口,並按ESC鍵退出全屏模式。但在IE8中,當我點擊按鈕時沒有任何反應。我如何使這個功能爲IE8工作。 有什麼建議嗎?

謝謝。

回答

0

對不起,IE8還不支持全屏API。 Here是一篇關於使用全屏API的好文章。它還指出Internet Explorer不具備全屏API支持。

目前尚不支持Internet Explorer或Opera,但我會建議您使用'ms'和'o'前綴作爲將來打樣。

+1

我不同意 - 通過猜測未來的前綴,'未來證明'是一個壞主意,因爲你不知道實現的細節。 – Keith

1

如果瀏覽器支持全屏API(Chrome,FX10,Safari 6,Opera 12.1),那麼您可以使用它。

如果不是(例如IE8),那麼出於安全原因,您不應該能夠模仿它:如果我可以創建一個運行全屏而不通知用戶的頁面,則可以模擬OS界面元素要求密碼等。

這裏是一個很好的例子how a phishing scam might work

此安全原因是WebKit實現禁用鍵盤輸入的原因。

IE用於支持無鉻彈出式窗口,但是這是removed as a security bug in IE6

舉例來說,你可以嘗試發送F11鍵:

var shell = new ActiveXObject("WScript.Shell"); 
shell.SendKeys("{F11}"); 

但是,這不應該允許在互聯網背景下(這可能會在信任域,取決於用戶設置)。

反正IE10運行全屏(默認),所以仍然不支持這個API。

相關問題