2

リンクのリストを調べて新しいタブで開く (すべてのリンクに同じ新しいタブを再利用する) ためのグリースモンキー スクリプトを作成していますが、ページが読み込まれるまで待つ方法がわかりません。次のリンク...新しいタブに追加しようとするすべてのeventListenerで、許可が拒否されたというエラーが表示されます...新しいタブが完全にロードされているかどうか(または少なくともサーバーがリクエストを処理するのに十分なほどロードされているかどうかを確認するにはどうすればよいですか) か否か?私は unsafeWindow を試しましたが、それで拒否されたエラーも発生しました(使用法を完全には理解していないかもしれません...)

例として...これは私が試した複数のことの1つです...

mywin.addEventListener(DOMContentLoaded, false);

そして、ここにもう1つあります(機能しなかったときに削除したので、他に何を試したか覚えていません)........

mywin.unsafeWindow.setTimeout(1000);

「mywin」にタイムアウトを設定しようとした理由がわからないので、メインウィンドウで設定してみますが、それが機能する場合でも、ステータスを確認する適切な方法を知りたいです新しいタブの。

ありがとう!!!

編集: setTimeout を機能させることができましたが、設定が低すぎると低速の接続でロードされないことを意味し、設定が高すぎると高速な接続で大きな遅延が発生するため、これは最善の方法ではありません。

だから私はまだより良い方法を探しています!

編集:すべてのリンクが同じサイトにあるため、クロスサイト/クロスドメイン スクリプティングに該当するべきではありません(ただし、該当する可能性があります)。

starting with 
http://www.aywas.com/message/notices/

the links being opened are like these
http://www.aywas.com/message/notices/9767066/
http://www.aywas.com/message/notices/9765913/
http://www.aywas.com/message/notices/9765644/

編集: GM_xmlhttpRequest または http-on-examine-response はおそらくこれで機能しますか? もしそうなら、どうすればいいですか?

4

1 に答える 1

0

GM_openInTab私は問題を回避する方法を見つけました...奇妙なことに、使用してウィンドウを作成するときにそれを行うことができませんでしたが、

mywin2=window.open("http://www.aywas.com/message/notices/9801049/", "my_win2");

次のコードを使用してロードを検出し、目的に十分にロードされた後にのみタブを閉じることができました! (上記のコードの「ウィンドウ タイトル」ビットは何もしていないように見えますが...)

mywin2.addEventListener('load', function() {
  mywin2.close()
}, false);
于 2013-07-17T19:21:24.687 に答える