VB2005を使っています。
あるホームページ内にある検索機能を連続で実行させたいのですが、
WebBrowser1.Refresh()を実行すると[再試行]ダイアログボックスが
表示されてしまいます。
そのHTMLソースは、
<form name="XXX" method="POST" action="/search">
となっているため、予想通りの動作だと思いますが、ScriptBrowserK
というブラウザのような自動更新機能ではダイアログボックスを
表示せずに更新を実現しています。
これと同様のことをVB2005で開発可能でしょうか?
<html>
<head>
<script>
function onLoadFunc() {
setTimeout(function() {
document.forms[0].submit();
location.reload();
}, 2000);
}
</script>
</head>
<body onload="onLoadFunc()">
<form method="GET" action="">
<input type=hidden value="1" name="ok" />
</form>
</body>
</html>
こーゆーことではなくて??
<html>
<head>
<script>
var timeoutSec = 1000 * 5;
function onLoadFunc() {
var findList = ["兄貴", "弟", "姉妹", "兄弟", "義兄弟", "舎弟" ];
var index = 0;
setTimeout(function() {
if (index < findList.length) {
var item = findList[index];
index += 1;
document.forms[0].keyword.value = item;
document.forms[0].btn[0].click();
setTimeout(arguments.callee, timeoutSec);
}
else {
alert(findList + " 終了");
}
}, timeoutSec); //timeoutSec 秒毎に更新する
}
</script>
</head>
<body onload="onLoadFunc()">
<!--//
http://XXXXXXXXXXXXXXXXXX/i/x/search.php
以下フォームはココから拝借(怒られちゃう。。。)
作者の方申し訳ありません。m(__)m
//-->
<form action="http://XXXXXXXXXXXXXX/i/x/search.php" target="_iframe">
<p>
<input type="hidden" name="typ" value="search">
キーワード:<br>
<input type="text" name="keyword" value="" maxlength="250"><br>
<select name="engine">
<option value="google">Google
<option value="yahoo">Yahoo
<option value="goo">goo
<option value="jisho">辞書検索
</select>
<br>
<input type="submit" name="btn" value=" 検索 ">
<input type="submit" name="btn" value=" 保存 ">
</p>
</form>
<iframe name="_iframe" id="_iframe" width="640" height="250"></iframe>
</body>
</html>
又はこんな感じ。
自分自身をリロードではなくて枠の無い IFRAME にポストすることで
自身のリロードをやらないで画面の一部を更新する。自動更新なら、
フォームは隠しておいた方が良い。検索条件は?Ajaxやら、VBから
取得できるのかな?
検索エンジンの振分スクリプトを無断借用しています。
ですので、テストでご利用の際は注意してください。
よろしくお願いします。timeoutSec に 0.5 秒とか無理
な値を設定しないように。
携帯サイトらしいので無用な負荷が掛からないよう、アドレスを
伏せました。ご自分のテストサイト用のアドレスに書き換えた上
でコピペ・テストしてみてくださいね。
これを実行すると、
配列中の検索条件を元にIFRAME を5秒間隔で更新します。
で、あるサイトは、
(1)フォームを非表示
(2)IFRAME(枠なし) 又は 別フレーム(枠なし)へポスト
(3)定期実行処理部分はスクリプト
(4)検索条件は、Ajax で RSS 形式かなんかで取得
みたいなことをやっているのだと思いますね。
たぶん。
みなさん、ありがとうございます。
しかし、質問の仕方が悪かったようですね。
ホームページは私が作成したものではなく、インターネットに公開されて
いるサイトです。
例えば、社保庁のホームページで「サイト内検索」したとします。
http://www.sia.go.jp/
検索結果が出ている状態で、ブラウザの更新ボタンを押すと、
「このページを再表示するには...」というメッセージが表示されますが、
自動更新機能のあるブラウザ等を利用すると、このメッセージは表示され
ずにページ更新をすることができます。
この機能をVB2005で作成するにはどうしたら良いでしょうか?
よろしくお願いします。
ツイート | ![]() |