概要 ▶ livedoor blogで編集していて気がついたのですが、一度「公開」設定にしたものを再度編集して、保存をすると再構築が完了しました、という画面が表示されて終わってしまう。これは困る。どういう風に困るかというと、結構前のエントリーで間違いがあって修正したいとか、追記したいとかいうときに、修正したエントリーがきちんと表示できているかどうかを確認するときにエントリーを表示するのが結構面倒だからだ。M
本ページはプロモーションが含まれている場合があります
本ページはプロモーションが含まれている場合があります
これは困る。
どういう風に困るかというと、結構前のエントリーで間違いがあって修正したいとか、追記したいとかいうときに、修正したエントリーがきちんと表示できているかどうかを確認するときにエントリーを表示するのが結構面倒だからだ。
Movable Typeみたいに、保存後に同じ編集画面に戻ってきて、なおかつ以下のような「エントリーを確認」というものがあれば、修正後のエントリーの確認が簡単にできる。(TypePadはなぜかこの「エントリーを確認」の実装が遅くて困った)是非実装して欲しい。
idの値が「http://blog.livedoor.jp/username/archives/」の後に入って「.html」が付くだけなのだから、実装としては難しくないと思うのだが…。
とか、愚痴を言っても仕方がないので、「再構築が完了しました」と表示されたページの2ページ前のURLから、idの値をJavaScriptで取得して、あとは「http://blog.livedoor.jp/username/archives/idの値.html」をlocation.hrefに設定するというブックマークレットを作ろうと思ったのですが、
Historyオブジェクトは読み出し専用の文字列の配列です。配列の各要素は、ブラウザが以前にアクセスしたURLになります。この配列の内容はNavigatorのGoメニューで表示するURLと同じです。セキュリティやプライバシーを保護するため、UniversalBrowserRead特権がないと、この配列の内容を使えません。とのことなので、どうやらhistoryオブジェクトに入っているURLの値は読み取れない模様。。・゚・(ノД`)
UniversalBrowserRead特権がない場合、または、Navigator 4のセキュリティモデルをサポートしていないブラウザの場合、Historyオブジェクトの使い方は非常に制限されます。この場合でも、JavaScriptはlengthプロパティを使ってHistoryオブジェクトのURLリスト内のエントリ数を知ることができ、またメソッドのback()、forward()、go()を使って配列内のURLに再度アクセスすることはできますが、その配列からURLを読み出すことはできません。
JavaScript
*・゜゚・*:.。..。.:*・゜ ゚・*:.。..。.:*・゜゚・*
仕方がないので、編集する画面で、編集しているエントリーに飛ぶブックマークレットを作成。(^-^;
「再構築が完了しました」のページにいるときは2ページ戻るだけ。エントリーの編集の画面にいるときは、ブログのエントリーを表示するという、2段構成にしてあります。この前もそういう書き方したなぁ(^-^;
なので「再構築が完了しました」のページで1回ブックマークレットを発動させて、ページが変わったらもう1回ブックマークレットを発動させると公開設定ならばめでたくエントリーの確認ができるようになるというわけです。
まどろっこしいやり方ですが、良い方法があればお教え下さい。(・◇・)ゞ
ldbエントリー確認
javascript:if(location.href.match('^http://cms.blog.livedoor.com/cms/rebuild/finish')){window.history.go(-2);}else{if(location.href.match('^http://cms.blog.livedoor.com/cms/article/edit')){location.href='http://blog.livedoor.jp/jdash/archives/'+location.href.replace(/.*&id=(.*)/g,'$1.html')}}
※http://blog.livedoor.jp/jdash/archives/ の jdashの部分は各自ユーザー名に変更してください。
#あ、「内容を確認」を押した後だと変になっちゃうな(^-^; もう1回「戻る」ボタンを押して、ブックマークレットを発動させてください。(ぉ