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



All times are UTC + 9 hours

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

登録日時: 2009年5月03日(日) 07:39
記事: 2
javascriptも知らない状態からとりあえず手探りで自分用のアドオンを作成しています。
環境は
Firefox 3.0.10
Windows XP SP3
です。
機能としては、右クリックメニュー等から実行してブラウザを自動操作するようなものです。
簡単に流れを書くと、

1.指定したwebページを表示

2.読み込み完了まで待つ

3.webページのフォームに記入してsubmit
コード:
var inp = window.content.document.getElementsByTagName("input");
inp[0].value = "C:\\hogehoge.txt";
window.content.document.forms[0].submit();


4.読み込み完了まで待つ

5.読込み完了したらそのdocumentのリンクを検索

というような感じです。
1,3,5はなんとかいけそうなのですが
2,4の「読込みを待つ」もしくは「読込み後のdocumentを取得する」をどのように実現したらいいのかわかりません。
vbscriptからIEを操作して似たような事する場合は

コード:
Set objIE = WScript.CreateObject("InternetExplorer.Application")
objIE.Navigate "http://hogehoge.com"
Do While objIE.Busy '読み込みが終わるまで待機
   WScript.Sleep 100
Loop
読込み後の処理

のような感じで実現できたので、これと同じような事ができればいいのかと思っているのですが…
それとももっと違うアプローチで実現させるべきものなのでしょうか


通報する
ページトップ
 プロフィール  
引用付きで返信する  
投稿記事Posted: 2009年5月05日(火) 17:55 
オフライン

登録日時: 2005年8月02日(火) 22:12
記事: 42
お住まい: 東京都
sarasate さんが書きました:
2,4の「読込みを待つ」もしくは「読込み後のdocumentを取得する」をどのように実現したらいいのかわかりません。

私もここいら辺を試行錯誤中ですので、とりあえずわかる範囲で失礼します。

少なくとも 2 に関しては、addEventListener を使用するのがよろしいかと。

コード:
var newTab = gBrowser.getBrowserForTab(gBrowser.addTab("http://www.google.com/"));
newTab.addEventListener("load", myFunction, true);

タブブラウザ用コード - MDC より一部改変)

4 に関しても、submit 前後で removeEventListener して、再度 addEventListener かな、と思いますが、こちらは自信ありません。
ご参考になれば幸いです。


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

登録日時: 2009年5月03日(日) 07:39
記事: 2
返信ありがとうございます。
なるほど、読み込み完了のイベントをトリガにして処理を進めていけば良かったのですね。
仰るとおり、2に関してはこれでいけそうです。

引用:
4 に関しても、submit 前後で removeEventListener して、再度 addEventListener かな、と思いますが、こちらは自信ありません。
ご参考になれば幸いです。


とりあえず適当なテストページで試してみたら、見事に動作しました。
addEventListenerで呼ばれた関数内でとりあえずremoveEventListerしておき、
次に3の処理(フォーム記入~submit)、
そして再度addEventListenerで5(読み込み後のリンク検索)を という順番で動作しました。
手順が増えてもaddEventListenerにリレーさせていくような感じでやればよさそうです。

ありがとうございました。


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

All times are UTC + 9 hours


オンラインデータ

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


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

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