我在aspx页面上设置window.onbeforeunload
docker exec -it XXX bash
我将用户控件引用到我的aspx页面。在我的Ascx控件中,我有一个fileupload和asp按钮。
一旦我上传了一个文件并点击按钮保存它,在它击中文件后面的代码之前,由于某种原因,javascript函数ShowMessage()会弹出。 有什么方法可以限制这种情况的发生。当我上传文件并点击按钮保存时,我不需要弹出这条消息。请建议我如何解决
Ascx.code:
<script type="text/javascript">
window.onbeforeunload = ShowMessage;
function ShowMessage()
{
alert("Do you want to close?")
}
</script>
答案 0 :(得分:1)
您可以定义一个重置DisableMessage
事件处理程序的函数onbeforeunload
:
<script type="text/javascript">
window.onbeforeunload = ShowMessage;
function DisableMessage() {
window.onbeforeunload = null;
}
function ShowMessage() {
return "Do you want to close?";
}
</script>
并在按钮的OnClientClick
事件中调用该函数:
<asp:Button ID="btnsave" runat="server" OnClientClick="DisableMessage();" ... />
顺便说一句,只需在ShowMessage
中返回一个字符串(如上所示),onbeforeunload
事件处理程序就可以在所有浏览器中运行,但如果您调用alert
则不是这种情况。
答案 1 :(得分:0)
似乎问题是页面上的任何链接在点击时都会触发onbeforeunload,除非它是指向同一页面的链接。
在每个链接的onclick事件中添加“return false”(控件中的大多数元素都是触发javascript但不会去任何地方的链接)。这是我在页面上放置的代码。
$('#id').click(function (e) {
return false;
});
答案 2 :(得分:0)
将javascript更改为
<script type="text/javascript">
window.onbeforeunload = ShowMessage;
function ShowMessage()
{ if(this.id.indexOf("btnsave") == -1)
alert("Do you want to close?")
}
</script>
这将检查id为“btnsave”的内容是否正在调用该函数。