Ajax要求が成功したら、新しいウィンドウのアドレスを開きます。
無駄話は多く言わないで、キーコードは以下の通りです。
最近の開発では、リンクをクリックして、現在のユーザーがログインしているかどうかを判断する機能があります。ログインしていない場合は、ログインダイアログを開き、ユーザーがログインしてから、新しいウィンドウ(ラベル)にリンク先のUrlを開きます。
多く言わないで、直接コードを貼り付けます。
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;
});
ポイント:同期提出が必要で、非同期で提出して、calbackの中で新しいウィンドウ(ラベル)を開きます。