2013-06-28 96 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)