フル HTMLページを返す単純なAJAX呼び出しを作成しています。この応答から必要な値を取得しようとします。私はなぜそれが機能しないと私はおそらく考えることができるすべてをやったのか分からない。それはがの場合、別のHTMLページの一部として私のコードを持っているが、Firefox拡張の一部ではなく、問題がある。私はFirefoxの拡張機能を書いている!Firefox拡張機能のAjaxレスポンスで何もできません
Firefoxの拡張機能で、私は応答を得て警告を発することができ、そこには応答テキストが表示されます。しかし私は.find
、.filter
または何か本当に呼び出すことはできません。成功関数のある時点でコードが黙って壊れ、何も起こりません。ここで
私のコードです:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>runthis</title>
<script type="text/javascript" language="javascript" src="jquery-1.6.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('input').click(function(){
var makeTransferURL = "empty";
var pc = "empty";
$.ajax({//Transfer
type: "POST",
url: "http://localhost/transfer2.html",
data: "",
dataType: "html",
context: document.body,
success: function(response){
var table = $(response).find('table.123RowSeparator');
var a = table.find('a[href*="123"]');
var href = a.attr("href");
makeTransferURL = href;
var link = makeTransferURL.indexOf('PC_');
pc = makeTransferURL.substring(link, (link + 11));
alert(pc);
},
error: function() {
alert("Sorry, The requested property could not be found.");
}
});
});
});
</script>
</head>
<body>
<input type="button" value="load" />
</body>
</html>
Firefoxの拡張機能のdoesntの仕事とまったく同じコード:
window.addEventListener("load", function() { myExtension.init(); }, false);
var myExtension = {
init: function() {
gBrowser.addEventListener("DOMContentLoaded", myExtension.onPageLoad, true);
},
onPageLoad: function(aEvent) {
var doc = aEvent.originalTarget; // doc is document that triggered "onload" event
if(doc.location.href=="http://localhost/index2.html") {
var makeTransferURL = "empty";
var verifyTransferURL = "empty";
var confirmTransferURL = "empty";
var token1 = "empty";
var token2 = "empty";
var pc = "empty";
$.ajax({//Transfer
type: "POST",
url: "http://localhost/transfer2.html",
data: "",
cache: false,
async: false,
dataType: "html",
context: document.body,
success: function(response){
var table = $(response).find('table.123RowSeparator');
var a = table.find('a[href*="123"]');
var href = a.attr("href");
makeTransferURL = href;
var link = makeTransferURL.indexOf('PC_');
pc = makeTransferURL.substring(link, (link + 11));
alert(pc);
},
error: function() {
alert("Sorry, The requested property could not be found.");
}
});
}
aEvent.originalTarget.defaultView.addEventListener("unload", function(){ myExtension.onPageUnload(); }, true);
},
onPageUnload: function(aEvent) {}
}
私はなぜを知っている必要があります!ここで
は、応答のHTTPヘッダーです:
HTTP/1.1 200 OK
Date: Mon, 11 Jul 2011 10:43:32 GMT
Server: Apache/2.2.19 (Win32)
Last-Modified: Wed, 06 Jul 2011 12:41:47 GMT
ETag: "9000000015529-f7b9-4a765ec7780ff"
Accept-Ranges: bytes
Content-Length: 63417
Keep-Alive: timeout=5, max=97
Connection: Keep-Alive
Content-Type: text/html
!私は、ブラウザ/アドオンのさまざまな部分に複数の時間が含まれている場合、jQuery名前空間に問題があると思うが、どのメソッドが呼び出されているのか混乱している! – Amir