• 締切済み

画面遷移の際に確認ダイアログを表示させたいです。

画面遷移の際に確認ダイアログを表示させたいです。 ブログやメールなどの編集中(入力途中)に他画面へのリンクをクリック、更新などを行おうとすると「編集中の内容は破棄されますがよろしいですか?」というような確認ダイアログを表示させるようにしたいです。 表示されたダイアログでは「はい」「いいえ」が選択でき、「いいえ」を選択すると編集画面にとどまるようにしたいです。 IEやFirefoxではjavascriptで行えるようですが、SafariやOperaではブラウザの仕様もあってダイアログが表示されず困っております。 今まで参考にしたサイトは以下になります。 http://d.hatena.ne.jp/kaz_29/20090303/1236047477 http://css-eblog.com/javascript/js-onbeforeunload.html http://semooh.jp/jglycy/jquery-plugins/form-observe 上記サイトの方法を試しましたがやはりうまくは行きませんでした。 クロスブラウザ対応で、jqueryなどでこのような動作を行ったりなどできるものはありませんでしょうか。 よろしくお願いします。

みんなの回答

  • zeff
  • ベストアンサー率69% (137/198)
回答No.3

unload → confirm → 「いいえ」 → return false; でできるかと思って調べてみましたが、 「いいえ」を選んでもreturn falseは無視?されて ページ遷移してしまうそうです。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9742&forum=12 ページを閉じようとしてconfirm → 「いいえ」 → 「閉じない」 が出来てしまうと問題があるということらしく。 自分だったらaリンクonclickとinput type=submitに全部同じ関数をくっつけ、 confirmを呼び出して「いいえ」を選んだらreturn false;にします。 unloadはユーザーの自己責任なのかなぁと思うので。 もし「それはすでに調べ済み」だったらスミマセン^^;

  • think49
  • ベストアンサー率59% (285/482)
回答No.2

beforeunloadは以前調べましたが、DOM Level 3で未定義でした。 onbeforeunload時のwindow.openが効かないのです | OKWave http://okwave.jp/qa/q5846460.html クロスブラウザを考慮するなら、unload ではないかと思います。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

jQueryなら、 「jQueryUI dialog」 http://jqueryui.com/demos/dialog/ 「LightView」 http://www.nickstakenburg.com/projects/lightview/ 「ThickBox 3.1」 http://jquery.com/demo/thickbox/ でポップさせれば別窓じゃなくてもできますよ。