0

IE 11 发布仅一天。我无法让元素全屏显示(div 或文档)

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

msRequestFullscreen 会报错'对象不支持这个...)

但是,上面的 msdn 示例将适用于传递目标 - makeFullScreen(evt.target)。我可以像下面的 jquery 代码那样让 div 全屏显示吗?:

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

或者更好的是:单击一个按钮然后让一个 div 或整个文档全屏显示?就目前而言,当单击一个按钮时,它是全屏显示的按钮。

4

2 回答 2

1

我认为这实际上是对 JQuery 的一个小误解。JQuery-ing 一个 ID 实际上并没有返回找到的元素 - 它返回一个“JQuery 对象”,它允许对该元素进行许多操作(或者,如果您使用类选择器,则可以对一系列元素进行操作)

我没有可用的 IE11,所以我无法为你测试,但试试这个。[0] 应该检索元素本身。

var xxx = $('#container')[0]; xxx.msRequestFullscreen();
于 2013-10-22T14:13:23.220 回答
0

你的代码:

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

这是错误的,因为您试图在 jQuery 对象上调用 DOM 方法。

jQuery 调用就像$('#container')返回 jQuery 对象一样。您可以使用这些对象做很多事情,但您不能做的一件事是调用标准 DOM 方法。为此,您需要一个实际的 DOM 对象。

jQuery 对象包含一组匹配的 DOM 对象,如果有多个匹配元素,您可以通过[0]第一个对象和, 等方式访问这些对象。[1]因此,您可以通过如下更改第二行来拨打电话:

xxx[0].msRequestFullscreen();

这将调用msRequestFullscreen()DOM 元素而不是 jQuery 元素,这应该适合你。

在这种情况下,您甚至根本不需要 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)

于 2013-10-22T14:26:04.087 回答