ajax调用成功后如何执行JS函数?
How to execute JS function after successfull ajax call?
我想全屏展示我的window。
我有一个工作函数,但是我有一个问题:
我在用户点击 UI 中的某个按钮后发送一个 AJAX 调用,以获取一些数据并准备它,在此 ajax 调用之后(在 success
我想全屏显示我的数据,但我不能那样做,因为它会引发错误:
Failed to execute 'requestFullScreen' on 'Element': API can only be initiated by a user gesture.
如您所知,我有用户操作 - 单击按钮,但如果我尝试在 ajax 调用中执行 fullscreen function
,这还不够。
我也试图使用全局变量来获得一个状态(我是否需要全屏显示(这取决于响应解析的结果(在 AJAX 调用之后)),但它不需要t work too.I 正在以这种方式尝试:
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
有人知道如何解决这个问题吗?
非常感谢!
也许在您的 ajax 请求中,使用 async: false
使获取同步,从而将所有执行保持在同一事件(来自用户点击)中。
缺点是时间长了可能会卡死
这对你有帮助吗?:
答案基本上是说您不能在没有用户交互的情况下强制进行全屏更改,但还有一些替代建议
将 async : false 添加到 ajax 调用并在 ajax 成功时调用函数 useFullscreen 并将其从按钮 onclick 事件中删除
你可以使用callback function
,回调函数是作为参数传递给另一个函数的函数,所以你可以利用它,它会在你的等待 ajax 响应到来,请参见以下示例:
ISFULLSCREEN = false;
function get_ajax(useFullscreenCallback) {
ajax_call ()
.success(response) {
if (response.fullscreen) {
ISFULLSCREEN = true;
useFullscreenCallback();
}
}
}
function useFullscreen() {
if (ISFULLSCREEN) {
use_fullscreen();
}
}
get_ajax(useFullscreen);
我想全屏展示我的window。
我有一个工作函数,但是我有一个问题:
我在用户点击 UI 中的某个按钮后发送一个 AJAX 调用,以获取一些数据并准备它,在此 ajax 调用之后(在 success
我想全屏显示我的数据,但我不能那样做,因为它会引发错误:
Failed to execute 'requestFullScreen' on 'Element': API can only be initiated by a user gesture.
如您所知,我有用户操作 - 单击按钮,但如果我尝试在 ajax 调用中执行 fullscreen function
,这还不够。
我也试图使用全局变量来获得一个状态(我是否需要全屏显示(这取决于响应解析的结果(在 AJAX 调用之后)),但它不需要t work too.I 正在以这种方式尝试:
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
有人知道如何解决这个问题吗?
非常感谢!
也许在您的 ajax 请求中,使用 async: false
使获取同步,从而将所有执行保持在同一事件(来自用户点击)中。
缺点是时间长了可能会卡死
这对你有帮助吗?:
答案基本上是说您不能在没有用户交互的情况下强制进行全屏更改,但还有一些替代建议
将 async : false 添加到 ajax 调用并在 ajax 成功时调用函数 useFullscreen 并将其从按钮 onclick 事件中删除
你可以使用callback function
,回调函数是作为参数传递给另一个函数的函数,所以你可以利用它,它会在你的等待 ajax 响应到来,请参见以下示例:
ISFULLSCREEN = false;
function get_ajax(useFullscreenCallback) {
ajax_call ()
.success(response) {
if (response.fullscreen) {
ISFULLSCREEN = true;
useFullscreenCallback();
}
}
}
function useFullscreen() {
if (ISFULLSCREEN) {
use_fullscreen();
}
}
get_ajax(useFullscreen);