Hangul IME 動的実行
このリンクをブックマーク登録すると、どこのページにでもHangul IMEを設置可能かもしれません。 皆さん試してみていただけませんか?
こんばんは。 Win98上のSeaMonkeyで動きました。 でも、Internet Explorer 6では何も表示されません。
これ、ローカルファイルから読み込むことは 出来るのでしょうか?? ...あ、一度読み込めば二度目以降は早くなるのですね。
漢字選択窓とか、 キーボード配列画像とか、 IME切り替え装置とか(顔文字一覧とか、記号一覧とか) 表示されると便利かも、と思いました。
後、閉じるボタンもあると何となく落ち着くかもしれません。 (もちろん、内容が消えますという警告dialogを出して)
ひょっとして、 フレームページでは 動かないのでしょうか?
フレームページの例 http://www.arirang.co.kr/intro.asp
それから、 ページの下の方を表示した状態で bookmarkletを起動すると、 表示されていない部分(ページ先頭)にHangul IMEのウィンドウが 表示されるので、ちょっと不便だと思いました。
尚、Opera9.01でもちゃんと動きました。
このHangul IMEを2つ実行すると、 最後のウィンドウの物しかマウスで移動できません。 入力は、どちらでも可能でした。
普通はこんなことしないとは思いますが、 一応報告します。
chiyuさん、詳細な調査ありがとうございます。
僕も自前の環境でいろいろ試験してみましたが、 個人的な感触ではかなり雑な実装でも意外とよく動いてくれています。
ご指摘の点、僕も改善すべきだと思っていたものに加え、気づかなかった点もありました。ご意見ありがとうございます。
このスクリプトの仕組みとしては、colspan.netのサーバにあるものを遠隔読み込みし、最後に読み込むhangulimeexecute.jsに描画処理を実装しています。 よって、こいつを書き換えればどんどんオリジナルのものを実装可能です。マウスドラッグ周りや閉じる処理などを本格的に実装すればそこそこ使えるツールになりますね。
ということで、実装目標を以下のように立ててみます。
・「読み込み中」の表示 ・ドラッグ周り修正 ・複数回実行に関する配慮 ・IE6への対応可能性の調査 ・閉じるボタンの実装 ・漢字変換の実装 ・定型文字一覧からの選択を可能にする ・フレームのあるページでの動作を調査 ・キーボード配列の表示 ・コピペ機能の実装 ・ほかのフォームへの自動複写 ・ほかのフォームを乗っ取る
自己啓発のためにちょっとずつ実装していこうと思います。 がんばります。
# ごめんなさい。先ほど名前を書かずにコメント投稿しました。 # 一部内容を訂正した物(○2.の先頭部分)を投稿しますので、 # 先ほどの投稿は削除してください。 # よろしくお願いします。
こんばんは。 hangulimeexecute.jsの改造を2つほど考えてみました。 不具合があるかも知れませんが。
○1. http://www.keynavi.net/ja/tipsj/slpos.html これを参考にhangulimeexecute.jsを修正すると、 表示しているスクロール位置で Hangul IME画面を表示できることを確認しました。(SeaMonkeyにて。)
とりあえずMozilla系のみとして dragBox.style.left = self.pageXOffset + "px"; dragBox.style.top = self.pageYOffset + "px"; こんな感じです。
○2. menuBar.innerHTML = "X " + "Hangul IME"; として、閉じるボタンのつもりにしてみました。 さらに、hangulimeexecute.jsの先頭と末尾に
if(dragBox) { Element.show(dragBox); } else {
と
}
で囲んでみました。 これで本当に多重起動の防止になってるのかどうか、 よく分かりませんが。 (見えないだけで、沢山起動しているのかもしれないし。)
すみません、投稿したばかりなのに、 問題点が出てきました。 単純に if(dragBox) { Element.show(dragBox); } else { とするだけでは問題がありました。 dragBoxを再表示するときに、 現在のスクロール位置に表示されるように しておかないと不便でした。 つまり if(dragBox) { Element.show(dragBox); dragBox.style.left = self.pageXOffset + "px"; dragBox.style.top = self.pageYOffset + "px"; } else { という感じです。
こんばんは。 以前の私のコメントで、 ○2. の 閉じるボタン の部分を ちゃんと書いていなかったみたいなので、 書き直します。
# 投稿前にちゃんと表示されているか確認しなかったのが # 失敗でした。
menuBar.innerHTML = "<a href='javascript: Element.hide(dragBox)' title='delete this box'>X</a> " + "Hangul IME";
ごめんなさい、やり直します。 # 投稿前にちゃんと表示されているか確認しなかった失敗を # 繰り返してしまいました。
menuBar.innerHTML = "<a href='javascript: Element.hide(dragBox)' title='delete this box'>X</a> " + "Hangul IME";
こんばんは。
Win98上のSeaMonkeyで動きました。
でも、Internet Explorer 6では何も表示されません。
これ、ローカルファイルから読み込むことは
出来るのでしょうか??
...あ、一度読み込めば二度目以降は早くなるのですね。
漢字選択窓とか、
キーボード配列画像とか、
IME切り替え装置とか(顔文字一覧とか、記号一覧とか)
表示されると便利かも、と思いました。
後、閉じるボタンもあると何となく落ち着くかもしれません。
(もちろん、内容が消えますという警告dialogを出して)
ひょっとして、
フレームページでは
動かないのでしょうか?
フレームページの例
http://www.arirang.co.kr/intro.asp
それから、
ページの下の方を表示した状態で
bookmarkletを起動すると、
表示されていない部分(ページ先頭)にHangul IMEのウィンドウが
表示されるので、ちょっと不便だと思いました。
尚、Opera9.01でもちゃんと動きました。
このHangul IMEを2つ実行すると、
最後のウィンドウの物しかマウスで移動できません。
入力は、どちらでも可能でした。
普通はこんなことしないとは思いますが、
一応報告します。
chiyuさん、詳細な調査ありがとうございます。
僕も自前の環境でいろいろ試験してみましたが、
個人的な感触ではかなり雑な実装でも意外とよく動いてくれています。
ご指摘の点、僕も改善すべきだと思っていたものに加え、気づかなかった点もありました。ご意見ありがとうございます。
このスクリプトの仕組みとしては、colspan.netのサーバにあるものを遠隔読み込みし、最後に読み込むhangulimeexecute.jsに描画処理を実装しています。
よって、こいつを書き換えればどんどんオリジナルのものを実装可能です。マウスドラッグ周りや閉じる処理などを本格的に実装すればそこそこ使えるツールになりますね。
ということで、実装目標を以下のように立ててみます。
・「読み込み中」の表示
・ドラッグ周り修正
・複数回実行に関する配慮
・IE6への対応可能性の調査
・閉じるボタンの実装
・漢字変換の実装
・定型文字一覧からの選択を可能にする
・フレームのあるページでの動作を調査
・キーボード配列の表示
・コピペ機能の実装
・ほかのフォームへの自動複写
・ほかのフォームを乗っ取る
自己啓発のためにちょっとずつ実装していこうと思います。
がんばります。
# ごめんなさい。先ほど名前を書かずにコメント投稿しました。
# 一部内容を訂正した物(○2.の先頭部分)を投稿しますので、
# 先ほどの投稿は削除してください。
# よろしくお願いします。
こんばんは。
hangulimeexecute.jsの改造を2つほど考えてみました。
不具合があるかも知れませんが。
○1.
http://www.keynavi.net/ja/tipsj/slpos.html
これを参考にhangulimeexecute.jsを修正すると、
表示しているスクロール位置で
Hangul IME画面を表示できることを確認しました。(SeaMonkeyにて。)
とりあえずMozilla系のみとして
dragBox.style.left = self.pageXOffset + "px";
dragBox.style.top = self.pageYOffset + "px";
こんな感じです。
○2.
menuBar.innerHTML = "X " + "Hangul IME";
として、閉じるボタンのつもりにしてみました。
さらに、hangulimeexecute.jsの先頭と末尾に
if(dragBox) {
Element.show(dragBox);
} else {
と
}
で囲んでみました。
これで本当に多重起動の防止になってるのかどうか、
よく分かりませんが。
(見えないだけで、沢山起動しているのかもしれないし。)
すみません、投稿したばかりなのに、
問題点が出てきました。
単純に
if(dragBox) {
Element.show(dragBox);
} else {
とするだけでは問題がありました。
dragBoxを再表示するときに、
現在のスクロール位置に表示されるように
しておかないと不便でした。
つまり
if(dragBox) {
Element.show(dragBox);
dragBox.style.left = self.pageXOffset + "px";
dragBox.style.top = self.pageYOffset + "px";
} else {
という感じです。
こんばんは。
以前の私のコメントで、
○2. の 閉じるボタン の部分を
ちゃんと書いていなかったみたいなので、
書き直します。
# 投稿前にちゃんと表示されているか確認しなかったのが
# 失敗でした。
menuBar.innerHTML = "<a href='javascript: Element.hide(dragBox)' title='delete this box'>X</a> " + "Hangul IME";
ごめんなさい、やり直します。
# 投稿前にちゃんと表示されているか確認しなかった失敗を
# 繰り返してしまいました。
menuBar.innerHTML = "<a href='javascript: Element.hide(dragBox)' title='delete this box'>X</a> " + "Hangul IME";