我想寫一個使用jquery從維基百科API獲取數據的Firefox擴展。我打電話的getJSON這樣的:正在執行getJSON不返回任何Firefox的擴展
jqxhr = $.getJSON("http://en.wikipedia.org/w/api.php?action=parse&format=json&callback=?", {page:wikipediaPage, prop:"text|images", uselang:"en"}, function() {dump("success?\n");}).error(function() { dump("error?\n"); });
此代碼,因爲腳本不停止運行,我沒有看到一個例外,但沒有無論是從成功或錯誤響應功能。當我把它放入我的電腦上的HTML文檔並從瀏覽器運行時,代碼就起作用了,但是在擴展中它失敗了。
我完全不熟悉JavaScript和jQuery,所以任何幫助將不勝感激!
這裏是代碼時的網頁加載的工作:
<html>
<head>
<style>
a.test {font-weight : bold; }
</style>
</head>
<body>
<a href="http://jquery.com/">jQuery</a>
<script src="jquery.js"></script>
<div id="insertTest"></div>
<script>
var wikipediaHTMLResult = function(data) {
document.write("<p>Inside callback</p>");
document.write("Text data: " + data);
var readData;
for(x in data){
for(y in data[x]){
for(z in data[x][y]){
readData += data[x][y][z];
}
}
}
var arrayData = jQuery.makeArray(readData);
var newData = new Array();
var ignore = false;
//document.write("<p>" + readData + "</p>");
var i = 0;
//document.write(arrayData);
for(x in readData){
if(i > 100000){
break;
}
i++;
if(readData[x]=== '<'){
ignore = true;
}
else if(readData[x] === '>'){
ignore = false;
}
else if(readData[x]==='"'){
if(ignore){
newData[x] = "";
}
else{
newData[x] = """;
}
}
else{
if(ignore){
newData[x] = "";
}
else{
newData[x] = readData[x];
}
}
}
i = 0;
for(x in newData){
document.write(newData[x]);
i++;
}
document.write("<p>"+i+"</p>");
};
function callWikipediaAPI(wikipediaPage) {
$.getJSON('http://en.wikipedia.org/w/api.php?action=parse&format=json&callback=?', {page:wikipediaPage, prop:'text|images', uselang:'en'}, wikipediaHTMLResult);
}
callWikipediaAPI('Gregg Hartsuff');
$("a").addClass("test");
$(document).ready(function(){
$("a").click(function(event){
event.preventDefault();
$(this).hide("slow");
});
});
document.write("<p>Script is running</p>");
</script>
</body>
你有一個正在運行的例子嗎? – kamaci
你有沒有firebugged這看到請求正在作出並正在返回響應? – stevebot
我該怎麼做?我從來沒有用過螢火蟲。 – Ian