![](/img/trans.png)
[英]Call a javascript function on tab /browser close not on reload
[英]How i call a server function after close browser tab or browser in JavaScript
在 JavaScript 中關閉窗口選項卡或窗口后如何調用服務器函數。
//這是我的服務器代碼
public ActionResult DeleteNotPostedImage(string folder , string PostID)
{
folder = folder.Replace('_', '-');
string message = string.Empty;
try
{
if (Convert.ToInt32(PostID) <= 0)
{
if(Directory.Exists(Server.MapPath(string.Format("/ViewSolution/{0}", folder))))
{
Directory.Delete(Server.MapPath(string.Format("/ViewSolution/{0}", folder)), true);
}
}
return Json(new { success = true, message = message }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
MSError.Trace(ex);
}
return Json(new { success = false, message = message }, JsonRequestBehavior.AllowGet);
}
我想在關閉瀏覽器選項卡或瀏覽器后調用此函數。
<script type="text/javascript">
var contentStatus = false;
$(document).ready(function () {
var checkAction = "";
$('#your-post-btn').bind("click", function () {
checkAction = "Save";
$(this).data("clicked", true);
});
// on refresh
window.onbeforeunload = function(){
if($('#your-post-btn').data('clicked'))
{
checkAction = "Save";
return null;
} else {
checkAction = "Refresh";
return "Are you sure to leave this page";
}
};
// window close or tab close
window.onunload= function(){
if(checkAction.toLowerCase() !== "save"){
Test2();
}
};
function Test2(){
console.log(checkAction);
var formData = new FormData();
formData.append("folder",folder-name);
formData.append("PostID", post-id);
formData.append("action", checkAction);
var url = window.location.protocol.concat('//',window.location.host) + "/view/DeleteNotPostedImage";
window.navigator.sendBeacon(url, formData);
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.