はてなダイアリーの下書きを公開するかどうか確認する Greasemonkey スクリプト

下書きを保存するつもりが、間違って公開してしまう事が多いので、それを防ぐために Greasemonkey スクリプトを書いてみました。

// ==UserScript==
// @name           ConfirmPublish
// @namespace      http://d.hatena.ne.jp/griefworker/
// @include        http://d.hatena.ne.jp/*/draftlist
// @include        http://d.hatena.ne.jp/*/draft?epoch=*
// ==/UserScript==

(function() {
    // XPath を使って公開ボタンを取得
    var result = document.evaluate('//input[@type="submit" and @name="publish"]',
                                   document,
                                   null,
                                   7,
                                   null);

    // 公開ボタンをクリックしたときの動作を変更する
    for (var i = 0; i < result.snapshotLength; i++) {
        result.snapshotItem(i).addEventListener('click', function(e) {
            if (!confirm('公開する?')) {
                // preventDefault メソッドを呼び出してイベントをキャンセルする。
                // これで form の submit をキャンセルできる。
                e.preventDefault();            
                alert('キャンセルしたよ!');
            }
        }, true);
    }
})();

下書きが1つ以上選択されているかどうかの確認はしていません。その時は、はてなダイアリーがエラーを表示してくれるから別にいいかな、と。

大したものではありませんが、ご自由にお使い下さい。