仅对 1 个事件按钮禁用 onbeforeunload 事件
disable event onbeforeunload for 1 event button only
我在加载应用程序期间使用 JavaScript 函数 beforeunload 来显示模式。
我的母版页中的代码:
<script>
window.addEventListener("beforeunload", function (e) {
var modal = document.createElement("div");
modal.className = "modal-backdrop fade in"
modal.innerHTML = ' ';
var loader = document.createElement("div");
loader.className = "loader"
loader.innerHTML = '<i class="glyphicon glyphicon-hourglass"></i><br/><br/>Veuillez patienter...<br/>';
document.body.appendChild(modal);
document.body.appendChild(loader);
return null;
});
</script>
除了生成 excel 文件的按钮事件外,它运行良好。未检测到加载结束,因此模态未关闭。
有关信息,我给出了按钮事件的 c# 代码的结尾:
Response.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
我试图在我的按钮事件中调用这个函数,但它不起作用:
function stopNavigate() {
window.onbeforeunload = null;
}
如何才能仅禁用此按钮的 beforeunload?
将监听函数变成一个可以在别处引用的独立函数,所以它不是匿名的。然后,您可以稍后使用 removeEventListener
将其删除。 (将 null
分配给 on*
属性 只会删除使用相同 on*
属性 附加的侦听器)
function unloadHandler (e) {
var modal = document.createElement("div");
modal.className = "modal-backdrop fade in"
modal.innerHTML = ' ';
var loader = document.createElement("div");
loader.className = "loader"
loader.innerHTML = '<i class="glyphicon glyphicon-hourglass"></i><br/><br/>Veuillez patienter...<br/>';
document.body.appendChild(modal);
document.body.appendChild(loader);
return null;
}
window.addEventListener("beforeunload", unloadHandler);
// ...
function stopNavigate() {
window.removeEventListener('beforeunload', unloadHandler);
}
我在加载应用程序期间使用 JavaScript 函数 beforeunload 来显示模式。 我的母版页中的代码:
<script>
window.addEventListener("beforeunload", function (e) {
var modal = document.createElement("div");
modal.className = "modal-backdrop fade in"
modal.innerHTML = ' ';
var loader = document.createElement("div");
loader.className = "loader"
loader.innerHTML = '<i class="glyphicon glyphicon-hourglass"></i><br/><br/>Veuillez patienter...<br/>';
document.body.appendChild(modal);
document.body.appendChild(loader);
return null;
});
</script>
除了生成 excel 文件的按钮事件外,它运行良好。未检测到加载结束,因此模态未关闭。
有关信息,我给出了按钮事件的 c# 代码的结尾:
Response.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
我试图在我的按钮事件中调用这个函数,但它不起作用:
function stopNavigate() {
window.onbeforeunload = null;
}
如何才能仅禁用此按钮的 beforeunload?
将监听函数变成一个可以在别处引用的独立函数,所以它不是匿名的。然后,您可以稍后使用 removeEventListener
将其删除。 (将 null
分配给 on*
属性 只会删除使用相同 on*
属性 附加的侦听器)
function unloadHandler (e) {
var modal = document.createElement("div");
modal.className = "modal-backdrop fade in"
modal.innerHTML = ' ';
var loader = document.createElement("div");
loader.className = "loader"
loader.innerHTML = '<i class="glyphicon glyphicon-hourglass"></i><br/><br/>Veuillez patienter...<br/>';
document.body.appendChild(modal);
document.body.appendChild(loader);
return null;
}
window.addEventListener("beforeunload", unloadHandler);
// ...
function stopNavigate() {
window.removeEventListener('beforeunload', unloadHandler);
}