我们有一个 js 函数,它使用 Struts2 将用户从下拉列表中重定向到新页面。这是代码。
启动一切的 Struts2 下拉菜单:
<s:select name="selectName" list="List" listKey="nameCode" headerKey='-1'
listValue="description" headerValue="Please select..." value="namedValue" onchange="redirectNextPage(this.value)" />
这是接下来触发的重定向函数:
function redirectNextPage(id){
var page = "<s:url action='<path>.action'/>?<param>=";
window.location.href=(page + id);
}
我需要使用选择器来捕获 window.location.href 并将其绑定到我的 UnBindWindow 函数。
//Bind Links we dont want to affect
$('a[href^="http://"]').bind('focus', UnBindWindow); //Code not working?
//UnBind Function
function UnBindWindow(){
$(window).unbind('beforeunload', ReturnMessage);
}
...
我错误地认为焦点是我需要的正确 DOM 事件类型。发生的情况是 select 转到 javascript 函数,然后 onbeforeunload 事件在没有调用我的 jQuery 代码的情况下触发。
如何正确地将事件绑定到 window.location.href 以便我可以防止 beforeunload 对话框触发选择下拉菜单,但仍然适用于 jsp 页面上的其他元素?