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



All times are UTC + 9 hours

返信する
ユーザー名:
件名:
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: ON
BBCode を無効にする
フォントサイズ:
フォントカラー
スマイリーを無効にする
URL を自動的にパースしない
ユーザエージェントを表示する
認証コード
KCaptcha by Nikita_Sp
   

トピックのレビュー - oninput イベントをコードから起こす方法
作成者 メッセージ
  記事の件名:  Re: oninput イベントをコードから起こす方法  引用付きで返信する
返信が遅れてすいません。

やっぱりほかのアドオンの操作はいろいろ気をつけなければいけないようですね。
とりあえずはこのままで、需要が大きいようなら直接メソッドを呼ぶ方法で検討することにします。
投稿記事 Posted: 2009年8月01日(土) 16:34
  記事の件名:  Re: oninput イベントをコードから起こす方法  引用付きで返信する
inputイベントの生成自体は可能です。
やり方としては、手前味噌ですが、自動テストツールのUxUのイベントエミュレーションまわりのコードが参考になるのではないでしょうか。
http://www.cozmixng.org/repos/mozilla/u ... /action.js
この中のinputTextToField()というのがそれです。
XUL/Migemoの自動テストでは、これを使ってFirefoxの検索ツールバーに対するユーザの文字入力操作をエミュレートしています。

とはいえ、例えばoninputをトリガーにして各ボタンの有効無効を切り替えるためのupdateUI()というメソッドが呼ばれるので……とかそういうケースなのであれば、inputイベントを完璧にエミュレートするのはちょっとオーバースペックという気もしますね。
自分なら、こういう場合はメソッドの方を直接呼んじゃうと思います。
相手側のバージョンアップにその都度追従する必要はありますが、その方がスッキリして、余計なバグを仕込んでしまう余地が少なくなりますから。
投稿記事 Posted: 2009年7月30日(木) 01:57
  記事の件名:  Re: oninput イベントをコードから起こす方法  引用付きで返信する
 私見ですがmasahalさんがなさろうとされていることは、あまりお薦めできません。理由は以下の通りです。
  • 「検索ボックス自動入力」が他の拡張の仕様の影響をダイレクトに受けることになるので、それら拡張に変更があった場合、それら全ての拡張の内容を確認して「検索ボックス自動入力」を修正しなければならず、メンテナンスに要する労力が大幅に増加する可能性がある
  • ターゲットとする拡張 (例えば GoogleBar Lite など) が API を公開していないのなら、その拡張作者は自分の拡張を不正にコントロールされていると考える可能性がある


# 様々なリスクを御自身で引き受け、どうしてもやるのならターゲットとする拡張の
# command 要素 の id を調べて、 comannd 要素を呼び出すのが無難かと思います。
# 実際にその機能をインプリメントする前にターゲット拡張の作者さんに
# あらかじめ、許諾を得ておいた方がよいかと思います。
# でも、人間関係や技術上、もしくは自作拡張管理上のトラブルの元となり易いので、
# やっぱりお薦めできません。
投稿記事 Posted: 2009年7月29日(水) 19:42
  記事の件名:  oninput イベントをコードから起こす方法  引用付きで返信する
テキストボックス要素などの oninput イベントをコードから起こさせる方法ってないでしょうか。

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


自分で調べた限りでは直接取得する方法はないようなんですが、例えば何らかの形でキーを押したのと同じ効果を起こさせるとかできないでしょうか。
投稿記事 Posted: 2009年7月29日(水) 18:55

All times are UTC + 9 hours


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