2004/08/01 日
いま見ているエントリーを編集する Bookmarklet
ちょうどいまブラウザで見ている自分の blog のエントリーをいじりたいと思ったとき、みなさんどうしてますか?
普通はブックマークしてある Movable Type の管理画面から「Entryの編集」へ行き、カテゴリーや文字列などでエントリーを特定して編集し始めると思います。最近のエントリーなら楽ですが、むかーしのエントリーについたスパムコメントを消したいときとか、たどり着くまでに手間がかかります。また、MT の検索機能から飛ぶ人もいると思いますが、うちでは編集画面へのリンクを切っているので使えません。
miyagawa氏が作った Bookmarklet はそんな行程を一発で済ませてくれます。
blog.bulknews.net: Edit This Bookmarklet
ブラウザで見ているエントリを Movable Type で編集する Bookmarklet (2.x 系向け)
うむ、すばらしい。これ、結構需要あるはずです。
ただ、Safari だとうまく動きませんでした。もう慣れっこ。もったいなのでサクっと hack。
どうやらエントリーID を CGI に渡す部分が想定通りに動いてない模様。引数 id には「123」のような数字を渡さないとうまく動かないようで、「000123」だとエラーになってしまいます。現状だと Safari では後者を渡してしまいます。
なので、以下のように直してみました。Safari 以外でも動くと思います。
javascript:var id=location.href.split('/archives/')[1].split('.')[0];
location.href='http://your.mt/path/mt.cgi?__mode=view&_type=entry&id='
+ Number(id) + '&blog_id=1'
また、ディレクトリ構成を変更している人は、'/archives/' の部分をいじる必要があります。うちでは '/weblog/' にしました。
MT3 の場合は URL から id がとれないので、ほかの方にまかせます。
この場合はコメントフォームの「entry_id」などから取得すればいいですね。こんな感じ。
javascript:var id=document.comments_form.entry_id.value location.href='http://your.mt/path/mt.cgi?__mode=view&_type=entry&id=' + id + '&blog_id=1'
これなら MT のバージョンを問わず動作するのでよいかも知れませんね。
Excerpt: 唐突ですが、Editリンクを付けるのはどうかなー、ちょっとかっこ悪いかなー、と思います。わざわざexploit用の情報を公開しているようなものですから。 私はoobaさんのBookmarkletを「ちょこっと改造」したものを使っています。個別エントリーアーカイブをブラウザで開い...
Weblog: Ogawa::Memoranda
Tracked: 2004年12月 7日 09:31
Excerpt: bricklife.weblog."いま見ているエントリーを編集する Bookmarklet" javascript:var id=document.comments_form.entry_id.value;location.href='http://hogehoge/mt.cgi?__mode=view&_type=entry&id=' + id + '&blog_id=1' #“hogehoge”の部分を使用してる環...
Weblog: Kyan's BLOG
Tracked: 2005年2月16日 10:07
Excerpt: えぇと、このところの記事は、本来の Palm よりも、この blog を動かして...
Weblog: 医療関係者のためのPalm−ひとりごと
Tracked: 2005年2月16日 10:48
Excerpt: 表示中のエントリを簡単に編集できないか?などと思って探してみると、いま見ているエ...
Weblog: bowz weblog
Tracked: 2005年5月 2日 19:08
Excerpt: 表示中のエントリを簡単に編集できないか?などと思って探してみると、いま見ているエ...
Weblog: bowz weblog
Tracked: 2005年5月 2日 19:11
Excerpt: 今回のサイト移転作業でやったことを覚えてる範囲でメモメモ。 1. 当たり前ですが新ドメイン(kazunoblog.com)登録とレンサバ契約 特に深い理由もな...
Weblog: kazunoblog
Tracked: 2005年12月15日 02:45
Excerpt: カテゴリー機能 個別記事編集機能 記事一覧表示 コメント関係 トラックバック ナビゲーション 画像関係 Ama...
Weblog: MovableType(MT) Wiki | MTまとめサイト? | (PukiWiki/TrackBack 0.3)
Tracked: 2006年7月24日 11:05
Excerpt: Yellow cross ephedra.
Weblog: Yellow cross ephedra.
Tracked: 2007年10月30日 08:45
Opera でも使える「ブラウザーで見ているエントリーを編集する bookmarklet」探してます。
こちらの Safari 用 bookmarklet が使えるかなぁ、と期待したのですが、真っ白なページが表示されるだけで、まったく反応しませんでした。
どこかにあるんでしょうか…
探し疲れました。
>>1 GO さん
この bookmarklet が動かない理由はおそらく
「JavaScript の実装差異によりエントリーIDが取得できない」
であろうと思われます。
が、僕は Opera を利用しておらず JavaScript の実装状況もわかりません。
その辺りを言及しているサイトもあると思いますが知りません。
Opera での動作確認もできませんので、お力にはなれないと思います。
この bookmarklet は blog の設置状況でいじる必要があるため、
GOさんご自身の手で、エントリーIDを取得する部分を中心に、
挙動の確認と代替手段の検討をしていただくのがよいと思います。
ooba さん
早々のコメントをありがとうございました。
「JavaScript の実装差異によりエントリーIDが取得できない」という点、よく分かっています。
Opera の JavaScript にはクセがありますね。
頂いた bookmarklet は、IE 上では問題なく動いていましたので、blog 構造の問題は無いと仮定して、コンソールでは以下のエラーが表示されました。
Error:
name: TypeError
message: Statement on line 1: Expression evaluated to null or undefined and is not convertible to Object: document.comments_form
Backtrace:
In unknown script
var id = document.comments_form.entry_id.value;
一応手持ちの JavaScript マニュアルなども読んでいるのですが、なかなか苦戦しています。
問題が解決しました。
こちらにもトラックバックされていらっしゃる「Kyan's BLOG」の Kyan さんから頂いたアドバイスです。
Opera のツール→設定→ウィンドウから「新しいページを自動で開かない」にチェックを入れたら、見事に稼動しました。
これで Opera でも編集の bookmarklet が使えます。
ooba さん、ありがとうございました。








