2011-01-13 3 views
7

私はフォームを持っていて、送信していないフォームにデータがある間に、退出中のページでalert()を持つユーザーに気付かなければなりません。クロスブラウザのOnUnloadとOnbeforeunload? (特にオペラ11)

私はオペラがこれに多くの問題を持っていることを読みました。 Opera 11は、私が最後のバージョンだけを考慮に入れる必要があるためです。

だから、もう一度、アラートは、タブを閉じる、または全体のブラウザを閉じて、リフレッシュに表示されるはずです。 この要素を破壊するようなもので起動される<form>要素に直接イベントを設定するとよいでしょう。 Operaは現時点でwindow.onbeforeunloadをサポートしていないため、

+0

オペラの[onbeforeunload]の複製(http://stackoverflow.com/questions/390260/onbeforeunload-in-opera) – Bergi

答えて

19

Operaはまだ起動していません。 Operaのオンロードサポートは不完全です。たとえば、タブを閉じるときやOperaを終了したときに起動しないなどです。私が知る限り、ユーザーがリンクをクリックして保存されていないフォームからページを移動すると、警告を表示するためにonunloadを使用できますが、アンロードイベントが発生したときにナビゲーションが実行されないようにする方法はありません。

私がここで行うことは、onbeforeunloadイベントをリスンし、他のブラウザでも動作させ、Operaが追いつくのを待つことです。 Opera 12または13または15に関係なく、わかりませんが、onbeforeunloadが実装されていると、他のブラウザと同じように動作します。

+0

モバイルSafariはonbeforeunloadをサポートしていないため、モバイルユーザーがいる場合は、別の解決策を見つける。 – robocat

+1

'onbeforeunload'はOpera 15でWebkitエンジンに基づいてサポートされました! – wojo

1

Disable Closeはまだあなたを助けにはなりません。将来のバージョンでサポートされる予定です。今のところ、Opera 11はそれを実装していません。

-5

JQueryフレームワークは圧縮されたJavascript言語であるため、使用するブラウザに完全に依存します。ここでは魔法はありません。

+3

これはどのように質問に役立ちますか? – FastTrack

1

Opera 15以降、onbeforeunloadがサポートされました!