首頁 > web前端 > js教程 > 主體

怎麼設定Ajax請求成功即刻開啟新窗口

php中世界最好的语言
發布: 2018-04-03 17:35:29
原創
2268 人瀏覽過

這次給大家帶來怎麼設定Ajax請求成功即刻打開新窗口,設定Ajax請求成功即刻打開新窗口的注意事項有哪些,下面就是實戰案例,一起來看一下。

廢話不多說,關鍵程式碼如下圖:

jQuery.ajax({
"type":"post",
"url":"http://www.baidu.com", 
"success":function(rel){
if(rel.isSuccess){ 
window.open(rel.url,"_blank");
}
}
});
登入後複製

這個url請求成功後window.open(rel.url,"_blank");會被瀏覽器攔截,無法開啟新窗口,如果把window.open()放在ajax外面,問題就迎刃而解,程式碼如下:

var result="";
jQuery.ajax({
"type":"post",
"url":"http://www.baidu.com", 
"success":function(rel){
if(rel.isSuccess){ 
result=rel.url;
//window.open(rel.url,"_blank");
}
}
});
if(result.length>0){
window.open(result,"_blank");
}
登入後複製

下面看下在Ajax回應之後開啟新視窗

最近的開發中有一個功能,點擊一個連結之後,要判斷目前的使用者是否登錄,沒有登入的話,需要彈出一個登入對話框,使用者登錄之後,再在新的視窗(標籤)中開啟連結指向的Url。

不多說,直接貼出程式碼:

$(document).delegate("a", "click", function () { 
var actionUrl = $(this).attr("href"); 
var ssoAction = function () { window.open(actionUrl, '_blank'); }; 
if (isLogin()) { 
ssoAction(); 
} else { 
popup.show({login:function () { 
$.ajax({ 
type: "post", 
dataType: "json", 
url: "/Account/Login", 
data: $("frmLogin").serialize(), 
//发送方式改为同步,避免弹出页面被浏览器拦截
async: false, 
success: function (oData) { 
ssoAction(); 
} 
}); 
}); 
} 
return false; 
});
登入後複製

重點:需要使用同步提交,使用非同步提交,callback裡面開啟新視窗(標籤),會被瀏覽器認為是惡意行為

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

使用ajax校驗註冊的使用者名稱是否存在

ajax傳送資料類型步奏詳解

以上是怎麼設定Ajax請求成功即刻開啟新窗口的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板