はてなダイアリーのバックアップ機能について

先日、途中まで書いた記事が失われる事故を未然に防ぐgreasemonkeyなんてものをつくってフンフンしてたら、

プアー・メモリー - shi3zのzeptopad開発日記
だから最近のはてなダイアリーの自動保存機能は素晴らしいと思うし、GMailの自動保存もしかり。

あれ?そんな機能あったっけ、と見直したら下のほうにあった。
そういえば見たことあった。だけど最近

バックアップ機能を使用するには最新版のFlashプレーヤーをインストールしてください

となっていた。アップデートしたけど表示が変わらない。バックアップ機能使えない。

  • vista SP1+firefox2.0.0.17(最新)
  • vista SP1+firefox3.0.3(最新)

どちらもダメだった。

  • IEは動いた。(追記 flash player 9だった)

こっち側の問題という可能性はあるのかな。調査中。

原因はflash playerバージョン10問題

local_storage.js
51行目の

return navigator.plugins["Shockwave Flash"].description.charAt(16);

となっている。navigator.plugins["Shockwave Flash"].description.charAt(16);をコンソールにいれて実行してみると'1'が返された。

navigator.plugins["Shockwave Flash"].descriptionを実行してみると、"Shockwave Flash 9.0 r12"が返ってきた。
つまり今まではflashのバージョンが一桁だったから9とかが返って正常に処理されたんだけどバージョン10になったから十の位しか返ってこない。

"description.charAt(16);"でググると、はてなダイアリー以外でもバージョン10問題が原因でいくつか動かないサービスがあるようだ。

greasemonkeyでパッチかけるもんなのかな〜?調査中。
わかんねーよわーん。

unsafeWindow.Event.observe(unsafeWindow, 'load', function() { //<-実行タイミング?はこれがよさそう。diary_backup.jsの最後を参考に。
    //local_storage.jsの41行目のやつ
    unsafeWindow.LocalStorage.getFlashVersion = function(){
        return 10; //<-いまんとこ無理やり10をねじこんでみる
    }, false);

これでバージョン10と読み込ませて、つぎに本体を実行するんだろうけど、
つぎがわからん。
body中の

if (window.LocalStorage && LocalStorage.isUsable()) {
    document.write(
    '<div id="storageswf-container" style="background-color:#DDDDDD; border:2px solid #999999; padding:5;"><div style="text-align:left; width:215; font-weight:bold; font-size:11pt"><img id="backup-setting-close" src="/images/admin/backup-close.gif" style="float:right; cursor:pointer" />ダイアリー保存容量設定</div>'
    );
    LocalStorage.writeFlashTag('storageswf', '/tools/storage.swf');
    document.write(
    '<div class="note" style="width:215; font-size:10pt; text-align:left">このコンピュータに保存するデータの最大容量を設定します。<br />古いバックアップデータは自動的に削除されますが、頻繁に容量が不足する場合は最大容量を増やしてください。</div>< /div>'
    );
}

とか、
diary_backup.jsの最後のあやしいんだけど。。

Event.observe(window, 'load', function() {

    new DiaryBackup('backup');

}, false);

助けて!id:javascripter


はてなアイディアに報告してみました。
http://i.hatena.ne.jp/idea/21515

重複してました。/(^o^)\ナンテコッタイ