1
我有「打印」按鈕,它調用ajax獲取並打開頁面在新窗口打印。Ajax無法成功返回成功或錯誤的第二個致電
<button type="button" onclick="getPrint(event , 'Id')">Print</button>
function getPrint(e, Id) {
var url = '/PrintController/Print/' + "?Id=" + id;
$.ajax({
url: url,
async: false,
success: function (data) {
if (data.success == true) {
var mywindow = window.open('', 'Print', 'height=500,width=600,menubar=yes');
mywindow.document.write('<html><head><title></title>');
mywindow.document.write('</head><body >');
mywindow.document.write($('<div></div>').append(data.viewBody).clone().html());
mywindow.document.write('</body></html>');
mywindow.focus();
mywindow.print();
mywindow.close();
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
return;
}
控制器返回如下: -
return Json(new { success = true, viewBody = viewPrintSub }, JsonRequestBehavior.AllowGet);
的我第一次點擊 「打印」 按鈕,它工作正常。它做ajax獲取和控制去行動方法,並返回成功,然後它回來查看並進入成功功能,並打開新窗口,
但第二次點擊,它去控制器的行動方法,然後它返回成功,然後這一次它不會成功或失敗。
你看在瀏覽器的控制檯中的請求/響應? –
爲什麼你不通過AJAX將URL傳遞給'window.open'?你只需要去掉'
'? – Blazemonger嘗試更改'return;'爲'return false;' – Blazemonger