2013-06-28 102 views
0

IE11在本貼子發佈後只有一天。 我不能讓一個元素去全屏幕(DIV或文檔)IE11全屏顯示元素

http://msdn.microsoft.com/en-us/library/ie/dn265028

msRequestFullscreen將錯誤「對象不支持此...)

然而,上述MSDN示例將工作在傳遞目標 - makeFullScreen(evt.target)。 我能得到一個DIV去全屏如在下面的jQuery代碼?:

var xxx = $('#container'); 
xxx.msRequestFullscreen(); 

或者更好的是:然後點擊一個按鈕,有一個div或整個文件去全屏? 現在,單擊一個按鈕時,它就是全屏幕按鈕。

回答

1

我認爲這實際上是JQuery的一個小誤解。 JQuery中的一個ID實際上並不會返回找到的元素 - 它返回一個「JQuery對象」,它允許對該元素進行多種操作(或者,如果您使用類選擇器,則在一系列元素上)

我不'沒有IE11可用,所以我不能爲你測試,但試試這個。 [0]應該檢索元素本身。

var xxx = $('#container')[0]; xxx.msRequestFullscreen(); 
0

您的代碼:

var xxx = $('#container'); 
xxx.msRequestFullscreen(); 

這是錯誤的,因爲你試圖調用一個jQuery對象的DOM方法。

jQuery調用如$('#container')返回jQuery對象。你可以用這些對象做很多事情,但你不能做的是調用標準的DOM方法。爲此,您需要一個實際的DOM對象。

jQuery對象包含一個匹配DOM對象的數組,如果存在多個匹配元素,您可以通過第一個[0][1]等訪問該對象。所以,你可以通過改變你的第二行,如下所示做您的來電:

xxx[0].msRequestFullscreen(); 

這將調用DOM元素,而不是jQuery的元素上msRequestFullscreen(),這應該爲你工作。

在這種情況下,您根本不需要jQuery,因爲您沒有使用任何jQuery功能。您可以簡單地使用document.getElementById('container')來首先獲取DOM對象,而不是使用jQuery方法。那麼你不需要第二行的[0]語法,因爲你已經有了DOM對象。

最後,您可能需要小心,因爲這是一個特定於IE的方法;名稱前面的ms告訴您,這意味着即使您的代碼支持相同的功能,您的代碼也不能在其他瀏覽器中使用。您需要以跨瀏覽器的方式進行操作。有一些關於如何在此處執行此操作的提示:How to make the window full screen with Javascript (stretching all over the screen)