2 返信 最新の回答 日時: Aug 16, 2011 5:18 PM ユーザー:J

    スクリプトでWebビューアの読み込み終了を検知するには?

    J

      タイトル

      スクリプトでWebビューアの読み込み終了を検知するには?

      フォーラムに投稿

      任意のフィールドの値をパラメーターにウェブビューアからHTMLを取得して自動的にデータを入力するようなスクリプトを作りたいと思っています。

      この処理自体は出来ています。ウェブビューアの読み込みが終了してから手動でスクリプトを走らせるならすでに完了なのですが..。パラメーターにするフィールドへ値が入力されたときスクリプトトリガから処理して更に自動化を進めたいのですが、スクリプトからWebビューアの読み込みが終了したことを検知するにはどうしたらよいでしょうか?

      Webビューアの読み込みが終了するまでループで待たせておいて、読み込みが終了したら処理を進めるようにすればよいかな?と考えています。

      現状は...「スクリプトを一定時間停止する(数秒)」や「HTMLがある程度の文字数になるまで待つ」で対処しているのですが、ちょっと本質的で無いように思って相談させていただきました。

      よろしくお願いします。

        • 1. Re: スクリプトでWebビューアの読み込み終了を検知するには?
          hiro_

           他の掲示板への投稿過去レスですが参考になれば、 

          【引用】http://www.russ.jp/stepbbs/step.cgi?mode=view&no=55817&key=55900 より

          [55900] Re: [55817] WebビューアでMTに自動ログイン
          あまりスマートでありませんが、ループスクリプトでロードするまで待機するとか。
          ロード完了の判定は、ソースを取ってみてその中にエンドタグ</html>が含まれていれば便宜的に完了と見なします。

           ・ 変数を設定 [$許容回数; 値:5] //許容繰り返し回数を指定
           ・ 変数を設定 [$カウント; 値:1]
           ・Web ビューアの設定 [オブジェクト名: "web"; URL: "h ttp://www.russ.jp/stepbbs/step.cgi"]  
           ・Loop  
           ・ Exit Loop If [PatternCount(GetLayoutObjectAttribute("web";"content");"</html>") or $カウント>$許容回数]
           ・ スクリプト一時停止/続行 [間隔(秒): 1]
           ・ 変数を設定 [$カウント; 値:$カウント+1]
           ・End Loop
           ・If [$カウント>$許容回数]
           ・ 「タイムアウトを報告」
           ・Else If [PatternCount(GetLayoutObjectAttribute("web";"content");"Error")]
           ・ 「URLの不良を報告」
           ・Else
           ・ 「ロード完了、次の処理へ」
           ・End If
          • 2. Re: スクリプトでWebビューアの読み込み終了を検知するには?
            J

            Hiro.さん

            いつもありがとうございます。

            </html>ですか。思いつきませんでした。

            実際にあるかはわかりませんが、HTMLのコメント内に</html>が含まれていて、たまたまそのあたりまでしか読み込めていない(薄い可能性ですよね(^_^;))状況では問題になるかもしれませんが、実用上は大丈夫そうですよね。

            ありがとうございます。

            Webビュアーのスクリプトトリガ(読み込みが完了したら始動)があるといいんですけどね。

             

            あと、郵便番号検索APIを使うこともあるんですが

            http://zip.cgis.biz/

            たとえば...

            http://zip.cgis.biz/csv/zip.php?zn=1030000

            と引くと

            「"ZipSearchXML","1.01","http://zip.cgis.biz/csv/zip.php?zn=1030000","1030000","none","1","1030000","0","1"
            "トウキョウト","チュウオウク","イカニケイサイガナイバアイ","none","東京都","中央区","以下に掲載がない場合","none"」
            が返ってきます。
            以前、これを使って住所を自動入力するようにしました。そのときは、Webビューアーの読み込みが完了したのを確認したあとで、ボタンをクリックして各フィールドに値を切り出していました。
            この場合は</html>を検知する方法は使えないですよね?
            一番後ろの「"none"」は途中にもあるし、事業所名が入ることもあるのでつかえません。
            思いついたのは「,」を改行と置き換えて、行数が17行になったら終了というものなのですが、もっと良い方法などありましたらご教授ください。
            よろしくお願いします。