誰もがそれを見つける前に、これは多かれ少なかれ以前に尋ねられました: Greasemonkey と jQuery でリモート URL をロードする
ただし、3年前の話です。回答に示されているさまざまな方法を試しましたが、どれも機能しません。
基本的に、私の問題は次のとおりです。現在、A) ページ上のリンクを取得する、B) リンク先のページをリクエストする (同じホスト上にある)、 C) そのページで特定の値を見つける。これを達成するために、jQuery 1.7.2 と最新バージョンの Greasemonkey を使用しています。
問題は、ページを正常にリクエストできても、レスポンスに対して何もできないことです。応答をコールバック外の変数に代入しようとしましたが、空になってしまいます。ページに挿入した div に応答 html を追加しようとしましたが、div で console.log を使用すると、それが空であることが示されます (firebug は実際には html を表示しますが)。コールバックが終了するとすぐに、取得された html が存在しないだけでなく、存在しなかったようなものです。
基本的に、リクエストが終了した後に実際に使用できるように、htmlを取得する方法を尋ねたいと思います。これが私が今持っているものです(ページのdivに応答を追加する前述の試みを削除しました):
function getLink(url){
var resp;
GM_xmlhttpRequest({
method: 'GET',
url: url,
onload: function(response){
resp = response.responseText;
}
});
console.log(resp) //nothing here...
//failed code :(
/*$.ajax(url, {success: function(data){resp = data})
console.log(data)*/
}
上記を意図したとおりに動作させるには、どのような魔法のコードを書く必要がありますか?