[ablogcms]エントリーの作成中にブラウザの「戻る」を防ぐ


このエントリーをはてなブックマークに追加

エントリーの作成中に不用意にブラウザの「戻る」ボタンを押してしまうと、ユニットの情報が消えてしまうことがあります。

ということでエントリー編集中にページを移動しようとするとアラートを出すスクリプトを書いてみました。

使い方

preventback.js

上記のページからファイルをダウンロードするなりコピペするなりしてください。

ページ内のどこでも良いのでjsを読みこめばokです。

おすすめの構成

/path/to/theme/js/preventback.js にファイルを保存

/path/to/theme は使っているテーマの場所です。そこにjsというフォルダを作ってファイルを置いておきます。

/path/to/theme/admin/entry/field.html を編集

/admin/entry/field.html はエントリーのカスタムフィールドを定義しておくテンプレートです。このテンプレートはエントリーを編集するときだけ自動で読み込まれます。

テンプレートがない場合には新しく作成します。次の記述を追加します。

<!--#include file="/js/preventback.js"-->

以上

これだけです。

動作

エントリーを作成、編集している時にブラウザの「戻る」ボタンを押すとアラートが表示されるようになります。 ブラウザの「戻る」以外にも別ページヘ遷移するリンクをクリックしたり管理ページへ移動するボタンを押すとアラートが表示されます。

影響があるのはエントリーの作成ページと編集ページだけです。

ここでキャンセルを押すとページ遷移がキャンセルされて、今のページにとどまります。

エントリーの「作成」または「保存」ボタンを押した場合にはアラートは表示されず、そのまま送信します。