« メモ: 資産運用 その3 | トップページ | Twitter API 仕様書 (勝手に日本語訳シリーズ) 第十一版 »
2008.03.04
WebBrowserコントロールで試行錯誤 ― IEコンポーネント利用ブラウザによる Autopagerize の実現に向けて
というか、自分でブラウザを作ればいいんですよ。とか言ってみる
はらへた
(昨日、少しやりかけたところ)
「10 行でズバリ !! 簡単 WebBrowser の作成 (C#)」で解説されているサンプルプログラムを参考にしつつ、.NET Framework (2.0以降) の WebBrowserコントロール を使った、Webブラウザを作ろうとしているところです。
なんで、Webブラウザを作り始めたかというと、IE7 でも Greasemonkey というか Autopagerize や Minibuffer が使いたくて、どうすればいいか、考えているうちにたどり着いたのが、自分でブラウザを作ってみる、という結論。
- IE7 用の Greasmonkey を作ろうとしているプロジェクトはかつて存在したんだけど、すでに活動停止(プロジェクト自体が破棄された)。
- もう1つの希望の星、IE で userscript を使えるようにする IE7pro は、なんかいろいろ動作があやしげ(デフォルト設定のままだと、ユーザの知らない間に、素性の知れない proxy サーバに何かのデータを送ってしまう [→ proxy switcher 機能を使わないように設定し、あらかじめ登録済みのproxyサーバのアドレスを全部削除すれば、一応、大丈夫みたいではあるんですが、他にも何かあるんじゃないかと疑ってしまう])なので使うのは控えたい。
自分で IE 用の Greasemonkey っぽいものを作るのはちょっとしんどいし、いっそのこと、userscript をサポートしているブラウザを作ってしまった方が早いかも、ってことで、ブラウザを作り始めました。ブラウザ本体に userscript 機能があって、かつ、主要な userscript を一通り用意しておいて一緒に配布すれば、Autopagerize (や、その他便利スクリプト)を使う人の数がそれなりに増えそうな気もしますしね! Autopagerize の快感を多くの人に体験してもらうには、ブラウザ本体に最初から組み込んであるのが理想。
で、そんな簡単にブラウザが作れるのかというと、確かに一から全部作るのは大変だけど、いわゆる「IEコンポーネント」を使うことにすれば、ユーザインターフェース部分(と、最小限のロジック)だけ自分で作れば OK。単に、Web ページを閲覧するだけなら、「10 行でズバリ !! 簡単 WebBrowser の作成 (C#)」のサンプルプログラムでも十分。IEコンポーネントを使っているので、いままでに蓄積した右クリック(MenuExt)スクリプト群もそのまま使えるし(MenuExt だけではなくて、bookmarklet をもサポートするには、少しコードを書かないといけないけど)。
とりあえず、userscript をサポートするには、Webサーバから取ってきた html を書き換えて、userscript を読み込んで実行するようにすればいいだけなので、割と簡単。書き換え後の html + Javascript を実行するのは WebBrowser コントロールへ丸投げすることで実現できるので、要するに、html を書き換えるところだけ、自前で作成すればいいってこと。
はじめは、userscript をサポートするんじゃなくて、Autopagerize 相当の機能そのものをブラウザに組み込んでみようと考えていたんですが、WebBrowser コントロールでは、Mouse 関係のイベントとか、拾えないイベントが多すぎて、断念。 rel="next" な辺りにマウスをもっていったときに発生するイベントを WebBrowser コントロールでは拾えない。拾えるようにするには、Control クラスを元に、自前の WebBrowser 相当クラスをフルスクラッチで作るしかなさそう。ということで、userscript をサポートする方向に転換。Firefox + Greasemonkey 前提の(オリジナルの) Autopagerize はそのままでは動かないので、IE 向けにある程度手を入れる必要があります。どのくらいの作業量が必要なのかは、まだ不明。ある程度、やってみないと、見えてこないかも。
ってな感じで、本当に実現できるのかどうか、まだよくわかりませんが、やり始めてみたところです。
関連
- きっかけ、というか、たまたま同じ時期に発生した関連してそうな話題
- WebBrowser コントロールで MouseHover イベント(など、マウス関連イベント)を拾うことができない件
参考
- daishar.com: Greasemonkey for Internet Explorer - GreasemonkIE
- daishar.com: Goodbye to GreasemonkIE
- CodeZine:IEがものすごく使いやすくなる無償プラグイン「IE7Pro 2.0」リリース(ブラウザ拡張)
投稿者: tsupo 2008.03.04 午前 06:12
| 固定リンク
|
|
| ![]()
|
|
アマゾンわくわく探検隊
トラックバック
この記事のトラックバックURL:
この記事へのトラックバック一覧です: WebBrowserコントロールで試行錯誤 ― IEコンポーネント利用ブラウザによる Autopagerize の実現に向けて:
» WebBrowserコントロールで試行錯誤 ― userscript を実現する方法をいろいろ試してみる from 観測気球
いろいろ試行錯誤してみましたが、WebBrowserコントロールを使いつつ、userscript機能を実現するのは、簡単にはできないようです。まだ、何かいい方法はあるはず。たぶん。 続きを読む



