firefox の imacros プラグインを使用して、オンライン データベースからデータをダウンロードしています。ページがタイムアウトした場合を除いて、完全に機能します。それ以来、私は非常に小さなデータのチャンクをダウンロードするようになりました。その後、Web サイトがタイムアウトする頻度ははるかに低くなりましたが、それでも時々タイムアウトします。
問題は、if ステートメントを imacros マクロに直接コーディングする方法がないことです。そのため、タイムアウトした場合にページを更新するグリースモンキー スクリプトを一緒に実行したいと考えました。Web サイトが 1 か所でのみタイムアウトになり、タイムアウトすると次のように表示されます: ファイルを開けません
Java や Javascript を学んだことはなく、プログラミング経験はすべて数値計算法を扱っていましたが、問題を解決するためにコードをつなぎ合わせて適応させてきました。
以下は私の基本コードです:
var RefreshTime = '20';
var str1 = document.body.innerHTML
var str2 = "can't open file"
if (str1.search(str2) > 0) {
if (StRefTime > 0) setTimeout("location.reload(true);",RefreshTime*1000);
}
これを実行しているブラウザは現在、このスクリプト専用に使用されているため、 @include *
基本的に、これが意味することは、Web ページで「ファイルを開けません」が見つかる限り、20 秒ごとにページを更新することです。これは、テストしたときに他の Web サイトで完全に機能しますが、必要な Web サイトではまったく機能しません。更新すると、firefox が投稿データの再送信を確認するように求めてくることに注意してください。ただし、imacros には、このサイトでテストした機能があり、ダイアログが表示されるたびに自動的に確認する機能があります。
いくつか読んだ後、他の人も同様の問題を抱えていることがわかりました。原因の根本は、AJAX を介してページに到達した場合、グリースモンキーがそれを見逃すことだと思います。
これに対処するために、提案された解決策をそれらの人々に実装しようとしましたが、うまくいきませんでした. たとえば、上記のコードをここに示すソリューションに入れてみました: Run Greasemonkey script on the same page, multiple times? 、 例えば
var RefreshTime = '20';
var str1 = document.body.innerHTML
var str2 = "can't open file"
function highlightGoodComments (jNode) {
//***** YOUR CODE HERE *****
if (/str2/i.test (jNode.text () ) ) {
if (str1.search(str2) > 0) {
if (RefreshTime > 0) setTimeout("location.reload(true);",RefreshTime*1000);
}
}
しかし、これも機能せず、いくつかのバリエーションを試しました (たとえば、str2 を削除して「ファイルを開く」などを配置するなど)。また、次の作業を試みて失敗しましたhttps://gist.github.com/BrockA/2625891 . また、ページをロードしなくても「ファイルを開けません」を常にチェックすることを期待して、最初のコードをすべて setInterval ループにラップしようとしましたが、それもうまくいきませんでした。
残念ながら、私がスクリプトを実行している Web サイトはペイウォールの後ろに隠されています。コードがランダムにタイムアウトするため、コードをテストするのが難しく、コードが機能するかどうかを確認する方法はありません。失敗した。私はAJAXについて何も知らないので、それが起こっていることを確認する方法はわかりませんが、私の問題は他の人の問題と似ているように見えたので、そうであると信じています.このマクロを有効にすると、私のスクリプトが動作する部分ではなく、ウェブサイトの他の部分。
私はここでかなり立ち往生していて、すでに頭がいっぱいなので、誰かが私を助けてくれることを望んでいました. 助けられなくても、数時間待たずにコードをテストできるある種の AJAX Web サイトがあれば、自分でこれを理解しようとするのに役立ちます。これを読んでくれてありがとう、私は本当に誰かが提供できる助けに感謝します.