IE 11在这篇帖子中仅出现了一天。 我无法获得全屏(div或文档)的元素
http://msdn.microsoft.com/en-us/library/ie/dn265028
msRequestFullscreen将错误'对象不支持此...)
但是,上面的msdn示例将用于传递目标 - makeFullScreen(evt.target)。 我可以使用div来全屏显示,如下面的jquery代码吗?:
var xxx = $('#container');
xxx.msRequestFullscreen();
或者更好的是:点击一个按钮然后有一个div或整个文档全屏? 就像现在一样,当点击一个按钮时,按钮就会全屏显示。
答案 0 :(得分:1)
我认为这实际上是对JQuery的一个小错误概念。 JQuery-ing ID实际上并不返回找到的元素 - 它返回一个“JQuery对象”,它允许对该元素执行许多操作(或者,如果使用类选择器,则在一系列元素上)
我没有IE11可用,所以我无法测试你,但试试这个。 [0]应该检索元素本身。
var xxx = $('#container')[0]; xxx.msRequestFullscreen();
答案 1 :(得分: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)