« Movable Type で「記事と同じカテゴリ内の最近の記事」を表示する。 | トップページ | native2ascii.pl をいちおう作ってみた »

2006年2月25日 (土)

DDwin.js: Firefox から電子辞書 DDwin (または EBWin) を起動する

JavaScript Actions(JSActions) を使って Firefox の中でセレクトした文字列を EPWING 対応電子辞書閲覧ソフト DDwin で検索する。

基本的には一本道で、次のような手順。

1.
JavaScript Actions のサイトから最新版と ScriptSet をダウンロードし、インストール。動くようにする。
2.
上と同じところから JSAButton をダウンロードし、インストール。 Button フォルダを作っておく。
3.
DDwin 用の javascript ファイルを作る。例えばDDwin.jsを selection/ 以下に置き、さらに、これを Button/ 以下に名前を変えてコピーする。例えば 70_NL_DDwin.js などとする。
4.
DDwin のアイコンを適当なツールで取り出し、先の Button/ 以下に 70_NL_DDwin.png などとして書き出す。私は 16x16 で書き出した。
5.
ツールバー上でカスタマイズを選択し、JSActionsButton というのを適当な場所に置く。このボタンを一度クリックすると、先のアイコンが表示される。


DDwin.js は次のようなファイルにした(一部省略)。js のエンコーディングは sjis でいいみたい。DDwin の替わりに EBWin を使うのもほぼ同様で、exec のところが違うだけ(EBWin.js)。

var query;

if(_jsaCScript.context.isTextSelected){
    query = window.getSelection().toString();
} else {
    var mes = "検索文字列を入力してください。";
    mes = _jsaCScript.convertCharCodeTo(mes, "shift_jis");
    query = prompt(mes, "");
}

if(query != null) {
    query = remove_latin_1_accent(query);
    query = query.replace(/^\s+/, "");
    query = query.replace(/\s+$/, "");
    query = query.replace(/^[\x21-\x2F\x7B-\x7E]+/, "");
    query = query.replace(/[\x21-\x2F\x7B-\x7E]+$/, "");
    query = _jsaCScript.convertCharCodeFrom(query, "shift_jis");
    _jsaCScript.exec("c:\\Program Files\\DDwin\\ddwin.exe", 
                     ",2,Firefox用,G1," + query);
}

function remove_latin_1_accent(s) {
    s = s.replace(/[\xC0-\xC5]/g, "A");
    // ...省略...
    s = s.replace(/[\u017F]/g, "s");
    return s;
}


"Firefox用"は DDwin で使うグループ名。


ちなみに、これコマンドラインに渡すとき convertCharCodeFrom なんだよね。これを convertCharCodeTo を使うと思ってはまってしまった。 JSActions 2.2.0 のバグかもしれないと思ったが《掲示板》をよく見ると exec を使う例で、ちゃんと From でやっていた。

JSActions の今の管理人によると

>
ぶっちゃけ、自分も使ったときに間違ったんですが、JSActions 0.8系にあわせました。


……だそうで convertCharCodeFrom であっているよう。FromUnicode にしてくれたらわかりやすかったのに。


なお、通常ここに書いたようなことをやりたければ、DDwin の配布ページでいっしょに公開している DDpop を使うのが普通なのかもしれません。


参考

ファイル

DDwin.js
JSActions の selection または JSAButton で使うためのスクリプト。
DDwin-by-Dblclick.js
JSActions の startup に置くことで、 DDwin.js をダブルクリックで呼べるようにする。
EBWin.js
DDwin の替わりに EBWin を使う場合のスクリプト。
jsactions.patch
jsactions_2.2.0.xpi でテキストエリアなどのセレクションも取れるようにするためのパッチ。要 .xpi の展開、ビルド。ただし、現在のバージョンではすでに統合されていて不要。


更新

2006-03-10
jsactions.patch を使うときフォームの中で button などについてもセレクションを取ろうとしてエラーになっていたので、text と textarea のみ対応することにした。
2006-02-28
フォーム内のセレクションに対応するためのこのパッチ を jsactions_2.2.0.xpi にあてた場合に対応。
2006-02-26
独仏語の検索のために latin-1 のアクセント記号を抜くようにした。単語の前後の非英数の ASCII 文字をとりのぞいた。
2006-02-25
セレクションがないときに入力ボックスを開くようにした。
更新: 06/02/25-06/03/10,2009-02-26
初公開: 2006年02月25日 01:08:37
最新版: 2009年02月27日 19:29:25

2006-02-25 14:22:08 (JST) in Firefox, Windows アプリ | | コメント (4) | トラックバック (3)

Firefox」カテゴリ内の最近の記事

Windows アプリ」カテゴリ内の最近の記事

批評や挨拶のためのネットコミュニティ

  • はてなブックマーク(って何?) このエントリーをはてなブックマークに追加 このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク
  • Twitter (って何?)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/93568/8822917

トラックバックのポリシー

他サイトなどからこの記事に自薦された関連記事(トラックバック)の一覧です。
» JRF のソフトウェア Tips:DDwin.js: Firefox から電子辞書 DDwin (または EBWin) を起動する (この記事)

Firefox の拡張に DictionaryTip があります。ダブルクリックすると goo 辞書などを引いてミニウィンドウを出してくれるものです。同じようなことを《DDwin.js》を用いてやるには、JSActions のスタートアップスクリプトを可能にして、そのスクリプト内で、イベントリスナーにダブルクリックに対して DDwin.js を呼ぶよう登録するだけです。 0. すでに firef... 続きを読む

受信: 2006-03-01 19:47:02 (JST)

EPWING は古い電子書籍の規格だが、そうであるがゆえに軽い電子辞書の実装がある。古いがゆえに今では入手の難しい辞書も多いのが玉にキズだが、その「文化」をハイソな大学生以外にも知って欲しい。... 続きを読む

受信: 2012-05-23 01:28:42 (JST)

アプリケーションと言えばブラウザアプリって、PC-9801 のころから親んだ私達のアプリはどうなるの?それがダメなら今のブラウザアプリだっていつかは…。大丈夫おまかせください。ただ、ちょっとスクリプトを書いていただく必要がありまして…。... 続きを読む

受信: 2012-05-23 01:38:47 (JST)

コメント

更新:現在、本家サイトからダウンロードできる JSActions だと、すでにテキストエリアなどのセレクションも取れるようになっています。よって、jsactions.patch は不要になっています。jsactions.patch は後学の方の参考になるかもしれないので残しているだけです。

投稿: JRF | 2006-06-02 18:50:11 (JST)

普通は DDpop を使えばいいらしいです。

投稿: JRF | 2008-04-04 23:52:32 (JST)

punch 更新:検索の便宜のためタイトルに「電子辞書」を書き足し、上記二つのコメントを本文に反映した。

投稿: JRF | 2009-02-26 18:34:52 (JST)

coldsweats01 更新:おまけで EBWin.js も置いておく。IE 用のものは EBWin のサイトに置いてるのに、Firefox 用のものがないようなので。私のところでは DDwin に比べると起動が遅い。

投稿: JRF | 2009-02-26 21:28:18 (JST)

コメントを書く



(メールアドレス形式)


※匿名投稿を許可しています。ゆるめのコメント管理のポリシーを持っています。この記事にまったく関係のないコメントはこのリンク先で受け付けています。
※暗号化パスワードを設定すれば、後に「削除」、すなわち JavaScript で非表示に設定できます。暗号解読者を気にしないならメールアドレスでもかまいません。この設定は平文のメールで管理者に届きます。
※コメントを書くために<b>ボールド</b>、<pre>詩文やソースコード</pre>、<a href="">リンク</a>、その他のHTMLタグが使えます。また、漢字[かんじ]でルビが、[google: キーワード] で検索指定が使えます。


ランダムことわざ: 猿も木から落ちる。

今日のネットの話題: 画像・動画はタダ。普通、プライバシーはバッチリ。