【发布时间】:2016-01-23 22:32:50
【问题描述】:
我想全屏展示我的窗口。
我有一个工作功能,但我有一个问题:
在用户单击 UI 中的某个按钮后,我正在发送一个 AJAX 调用,以获取一些数据并准备它,在这个 ajax 调用之后(在success 我想全屏演示我的数据,但我可以不要那样做,因为它会引发错误:
Failed to execute 'requestFullScreen' on 'Element': API can only be initiated by a user gesture.
如您所知,我有用户操作 - 点击按钮,但如果我试图在 ajax 调用中执行 fullscreen function,这还不够。
我也试图使用全局变量来获得一个状态(我是否需要显示全屏(这取决于响应解析的结果(在 AJAX 调用之后)),但它也不起作用。我是以这种方式尝试:
ISFULLSCREEN = false;
function get_ajax() {
ajax_call ()
.success(response) {
if (response.fullscreen) {
ISFULLSCREEN = true;
}
}
}
function useFullscreen() {
if (ISFULLSCREEN) {
use_fullscreen();
}
}
我的按钮看起来像:
<button onclick="get_ajax();useFullscreen()" value="click me" />
但函数 useFullscreen 运行得比 ISFULLSCREEN 的值更改为 true 快
有人知道如何解决这个问题吗?
非常感谢!
【问题讨论】:
-
你可以在你的成功函数中调用 useFullscreen。
-
@Avi 他们在问题中说它无法执行
-
我不能,它会引发同样的错误:“无法在 'Element' 上执行 'requestFullScreen':API 只能由用户手势启动。”。这是我的第一个实现
-
一个建议是放置另一个按钮,上面写着“最佳观看全屏”,并让用户点击
-
@pivanchy 首先只有
get_ajax()绑定到按钮,响应时将 onclick 函数更改为useFullScreen()并通过代码触发新的 onclick 事件。
标签: javascript jquery ajax callback fullscreen