我想知道是否有人知道如何防止页面被重定向?我希望在页面离开时捕获一个事件,然后运行一些代码。如果后面的代码符合某些条件,则允许重定向,否则取消它。我知道其中一些可以通过Javacript实现,但我遇到的问题实际上是停止重定向。这就是我所拥有的:
JavaScript的:
<script type="text/javascript">
window.onbeforeunload = confirmExit;
function clickButton(getId) {
var getBtn = document.getElementById(getId)
getBtn.click()
}
function confirmExit(e) {
var btnId = document.getElementById("<%=btnConfirmExit.ClientId %>").id
clickButton(btnId)
}
</script>
代码背后:
Protected Sub btnConfirmExit_click(ByVal sender As Object, ByVal e As EventArgs) Handles btnConfirmExit.Click
'if something, cancel request
'else
' let it go
end Sub
如果尝试使用:
Page.Response.End()
但这没有任何作用。有人有什么想法吗?
由于
答案 0 :(得分:0)
如果您使用的是经典的postBack,浏览器已经开始请求并监听新页面,并且没有“nevermind”HTTP响应。即使你在某些情况下让它在某些浏览器上运行,它也会不一致且不可靠。
如果您必须执行此验证/处理服务器端,我认为您希望使用AJAX请求。
我不是他们的粉丝,但最糟糕的情况是,肮脏且没有更改太多代码,您可以使用更新面板。在这里阅读:
更新信息: http://msdn.microsoft.com/en-us/library/bb398864(v=vs.100).aspx
较旧的链接,但很好的概述: http://www.asp.net/ajax/documentation/live/overview/updatepaneloverview.aspx