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 のバージョンを問わず動作するのでよいかも知れませんね。

Posted by ooba at 03:42 | Comments (5) | TrackBacks (8) | このエントリーを含むはてなブックマーク
Trackbacks
TrackBack URL: http://www.bricklife.com/mt/mt-tb.cgi/300
"Edit This" Bookmarklet
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
Plugin
Excerpt: カテゴリー機能 個別記事編集機能 記事一覧表示 コメント関係 トラックバック ナビゲーション 画像関係 Ama...
Weblog: MovableType(MT) Wiki | MTまとめサイト? | (PukiWiki/TrackBack 0.3)
Tracked: 2006年7月24日 11:05
Yellow cross ephedra.
Excerpt: Yellow cross ephedra.
Weblog: Yellow cross ephedra.
Tracked: 2007年10月30日 08:45
Comments
1 : name: GO date: 2005/02/16 00:15 [RES]

Opera でも使える「ブラウザーで見ているエントリーを編集する bookmarklet」探してます。

こちらの Safari 用 bookmarklet が使えるかなぁ、と期待したのですが、真っ白なページが表示されるだけで、まったく反応しませんでした。

どこかにあるんでしょうか…
探し疲れました。

2 : name: ooba date: 2005/02/16 02:05 [RES]

>>1 GO さん
この bookmarklet が動かない理由はおそらく
「JavaScript の実装差異によりエントリーIDが取得できない」
であろうと思われます。

が、僕は Opera を利用しておらず JavaScript の実装状況もわかりません。
その辺りを言及しているサイトもあると思いますが知りません。
Opera での動作確認もできませんので、お力にはなれないと思います。

この bookmarklet は blog の設置状況でいじる必要があるため、
GOさんご自身の手で、エントリーIDを取得する部分を中心に、
挙動の確認と代替手段の検討をしていただくのがよいと思います。

3 : name: GO date: 2005/02/16 21:58 [RES]

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 マニュアルなども読んでいるのですが、なかなか苦戦しています。

4 : name: GO date: 2005/02/16 22:29 [RES]

問題が解決しました。

こちらにもトラックバックされていらっしゃる「Kyan's BLOG」の Kyan さんから頂いたアドバイスです。

Opera のツール→設定→ウィンドウから「新しいページを自動で開かない」にチェックを入れたら、見事に稼動しました。
これで Opera でも編集の bookmarklet が使えます。

ooba さん、ありがとうございました。

5 : name: ooba date: 2005/02/16 23:39 [RES]

>>4 GO さん
無事動いたようでよかったです。
何もお力になれずすみません。
Trackbackが有効に働きましたねー。

エラーを見る限りだとDOMツリーが参照できていないようですね。
Operaは参照方法が違うんでしょうかねぇ。謎です。

Post a comment




Powered by Movable Type 4.0