― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 4 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2009年7月29日(水) 18:55 
オフライン

登録日時: 2008年8月24日(日) 21:09
記事: 33
テキストボックス要素などの oninput イベントをコードから起こさせる方法ってないでしょうか。

具体的には、自分のアドオン検索ボックス自動入力において、検索を行ったとき、GoogleBar Lite など他のアドオンのテキストボックスにも検索語を入力し、同時にoninput イベントを起こすようにさせたいんですが( id はわかっている場合を考えます。ちなみにGoogleBar Lite の場合は"GBL-SearchBox")。


自分で調べた限りでは直接取得する方法はないようなんですが、例えば何らかの形でキーを押したのと同じ効果を起こさせるとかできないでしょうか。

_________________
masahal
antispam826-public at yahoo.co.jp
http://masahal.web.fc2.com/


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年7月29日(水) 19:42 
オフライン

登録日時: 2007年1月14日(日) 14:24
記事: 138
お住まい: Osaka,Japan
 私見ですがmasahalさんがなさろうとされていることは、あまりお薦めできません。理由は以下の通りです。
  • 「検索ボックス自動入力」が他の拡張の仕様の影響をダイレクトに受けることになるので、それら拡張に変更があった場合、それら全ての拡張の内容を確認して「検索ボックス自動入力」を修正しなければならず、メンテナンスに要する労力が大幅に増加する可能性がある
  • ターゲットとする拡張 (例えば GoogleBar Lite など) が API を公開していないのなら、その拡張作者は自分の拡張を不正にコントロールされていると考える可能性がある


# 様々なリスクを御自身で引き受け、どうしてもやるのならターゲットとする拡張の
# command 要素 の id を調べて、 comannd 要素を呼び出すのが無難かと思います。
# 実際にその機能をインプリメントする前にターゲット拡張の作者さんに
# あらかじめ、許諾を得ておいた方がよいかと思います。
# でも、人間関係や技術上、もしくは自作拡張管理上のトラブルの元となり易いので、
# やっぱりお薦めできません。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年7月30日(木) 01:57 
オフライン
Moderator

登録日時: 2007年5月03日(木) 01:11
記事: 92
お住まい: 東京
inputイベントの生成自体は可能です。
やり方としては、手前味噌ですが、自動テストツールのUxUのイベントエミュレーションまわりのコードが参考になるのではないでしょうか。
http://www.cozmixng.org/repos/mozilla/u ... /action.js
この中のinputTextToField()というのがそれです。
XUL/Migemoの自動テストでは、これを使ってFirefoxの検索ツールバーに対するユーザの文字入力操作をエミュレートしています。

とはいえ、例えばoninputをトリガーにして各ボタンの有効無効を切り替えるためのupdateUI()というメソッドが呼ばれるので……とかそういうケースなのであれば、inputイベントを完璧にエミュレートするのはちょっとオーバースペックという気もしますね。
自分なら、こういう場合はメソッドの方を直接呼んじゃうと思います。
相手側のバージョンアップにその都度追従する必要はありますが、その方がスッキリして、余計なバグを仕込んでしまう余地が少なくなりますから。


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年8月01日(土) 16:34 
オフライン

登録日時: 2008年8月24日(日) 21:09
記事: 33
返信が遅れてすいません。

やっぱりほかのアドオンの操作はいろいろ気をつけなければいけないようですね。
とりあえずはこのままで、需要が大きいようなら直接メソッドを呼ぶ方法で検討することにします。

_________________
masahal
antispam826-public at yahoo.co.jp
http://masahal.web.fc2.com/


通報する
ページトップ
 プロフィール  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 4 件の記事 ] 

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[41人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean