EUC-JPでもクイックポストを使いたい

  • 投稿日:
  • by
  • カテゴリ:

Movable Typeには、クイックポストというbookmarkletがある。 いちいちログイン→新規ブログ記事作成などという手順を踏まなくてもいきなり新規ブログ記事を作成できるというイカした機能なのだが、サイトの文字コードがEUC-JPだと機能しない(多分)。 というのも、こんなエラーが出るからだ。

エラーが発生しました。
close 不正な要求です。
文字コードEUC-JPに含まれない文字データを送信しています。

要は、「文字コード?UTF-8でしょフツー(笑)」というエラーなのだが(意訳)、なんでこんなエラーが出るかといえば、文字コードがEUC-JPであることを想定していないから+開いているサイトのタイトルを渡しているからだ。 前者はこちらではいかんともしがたいので、ただページ遷移を省略するためだけに使いたい私としては、後者をどうにかしよう。 タイトルとかどうでもいいし、エラーが出なければよいです。

ちなみに元のコードはこんな。 ブログ記事編集画面の、「保存」とか「確認」ボタンの下に「(ブログ名)へクイックポスト」というリンクがあるので、そのリンク先のこと。

javascript:d=document;w=window;t='';if(d.selection)t=d.selection.createRange().text;else{if(d.getSelection)t=d.getSelection();else{if(w.getSelection)t=w.getSelection()}}void(w.open('http://soap.s216.xrea.com/umu/mt/mt.cgi?__mode=view&_type=entry&blog_id=1&qp=1&title='+encodeURIComponent(d.title)+'&text='+encodeURIComponent(d.location.href)+encodeURIComponent('<br/><br/>')+encodeURIComponent(t),'_blank','scrollbars=yes,status=yes,resizable=yes,location=yes'))

これを下のようにする。

javascript:d=document;w=window;t='';if(d.selection)t=d.selection.createRange().text;else{if(d.getSelection)t=d.getSelection();else{if(w.getSelection)t=w.getSelection()}}void(w.open('http://soap.s216.xrea.com/umu/mt/mt.cgi?__mode=view&_type=entry&blog_id=1&qp=1&title=','_blank','scrollbars=yes,status=yes,resizable=yes,location=yes'))

太字のところを削っただけ。 機能としては、タイトルが自動で入らなくなって、ただ新しいウインドウで新規ブログ記事を書き始められるだけ。これをブックマークに登録して呼び出せばよろし。

サイトのタイトルとかは「Make Link」とかで作ればいいじゃないか。
参考:FirefoxアドオンMake Linkが良さそうだ(Copy URL+代替) (うむらうす)