はてなダイアリーのバックアップ機能について
先日、途中まで書いた記事が失われる事故を未然に防ぐgreasemonkeyなんてものをつくってフンフンしてたら、
プアー・メモリー - shi3zのzeptopad開発日記
だから最近のはてなダイアリーの自動保存機能は素晴らしいと思うし、GMailの自動保存もしかり。
あれ?そんな機能あったっけ、と見直したら下のほうにあった。
そういえば見たことあった。だけど最近
バックアップ機能を使用するには最新版のFlashプレーヤーをインストールしてください
となっていた。アップデートしたけど表示が変わらない。バックアップ機能使えない。
どちらもダメだった。
こっち側の問題という可能性はあるのかな。調査中。
原因は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^)\ナンテコッタイ