Struts2を使用して、ドロップダウンからユーザーを新しいページにリダイレクトするjs関数があります。これがコードです。
すべてを開始する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関数に移動し、jQueryコードが呼び出されることなくonbeforeunloadイベントが発生します。
イベントをwindow.location.hrefに適切にバインドして、アンロード前のダイアログが選択ドロップダウンを起動しないようにしながら、jspページの他の要素に対しては機能するようにするにはどうすればよいですか?