1

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 サイトがあれば、自分でこれを理解しようとするのに役立ちます。これを読んでくれてありがとう、私は本当に誰かが提供できる助けに感謝します.

4

1 に答える 1

0

質問が非常に長いので、実際に読む気にはなりませんでした。私は GreasMonkey を使用していないので、iMacros ソリューションを紹介できます。

iMacrosとjavascriptでhtml要素が存在するかどうかを確認します

これは、JS iMacros スクリプトを作成し、if 句を含める方法のモデルです。「開けない」Web ページをテストするテスト マクロを作成できます。

また、使用してみることができます

SET !TIMEOUT_PAGE 120

コマンドを使用して、ページの読み込み時間を 120 秒に増やします。役立つ場合は、これらのいくつかを試してください。

于 2013-05-02T18:16:00.823 に答える