2011-05-05 38 views
2

我認爲這是一個非常簡單的問題,但我似乎無法得到它的工作。我需要使用JavaScript(特別是jQuery,顯然)從頁面抓取一些內容,並將其拉入另一個頁面。我已經研究了這一點,但似乎無法得到一個非常簡單的例子。非常簡單的jQuery .load示例不工作

這裏是我試圖讓內容從頁面:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>Test</title> 
</head> 
<body> 
<p>This is the test html page.</p> 
</body> 
</html> 

這裏是我試圖用拉內容的頁面:當我打開

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>PullData</title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"> 
</head> 
<body> 

<ol id="result"></ol> 

<script type="text/javascript"> 
$('#result').load('test.html'); 
</script> 

</body> 
</html> 

頁面似乎沒有做任何事情。我基本上試圖遵循jquery.com中的示例:http://api.jquery.com/load/

這兩個html頁面都位於C驅動器上某處的相同文件夾中。

我缺少什麼?

在此先感謝您的幫助!

回答

5

您使用的瀏覽器是?

由於同源策略,即使原始文件是以這種方式加載的,某些瀏覽器也不會允許向file:/// URL發送AJAX請求。我知道Chrome的確如此,但並未測試其他人。

您的​​錯誤處理程序說什麼?呵呵...

+0

我使用Chrome。嘗試在Firefox中,它的工作原理(添加結束腳本標籤,我在這個例子中失蹤)。這是主要問題。謝謝你的幫助! – groovepriest 2011-05-05 14:54:50

+0

不客氣。有關詳細信息,請參閱http://code.google.com/p/chromium/issues/detail?id=47416 – Alnitak 2011-05-05 15:00:26

3

你的頁面末尾有你的腳本標記,這意味着一旦瀏覽器到達它,就會調用封閉的JS,這可能在DOM準備好之前就會被調用(這意味着<ol>可能不會被設置以獲取test.html的內容)。嘗試在$(document).ready()回調包圍你的負載如下:

<script type="text/javascript"> 
$(document).ready(function() { 
    $('#result').load('test.html'); 
}); 
</script> 

而且你爲什麼要插入一個完整的HTML頁面到有序列表?您應該嘗試將HTML代碼片段(無頭&正文標籤)插入內容持有人,如<div><span>,其語義正確。

如果沒有這些東西的工作,重視回調如下:

$('#result').load('test.html', null, function(responseText, textStatus, xhr) { 
    alert(textStatus); // see what the response status is 
}); 
0

必須首先檢查你的HTML是ready

$(document).ready(function() { 
    $('#result').load('test.html'); 
}); 
0

爲了確保#result1被加載,你需要一個document.ready事件處理程序:

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('#result').load('test.html'); 
}); 
</script> 

希望這有助於。乾杯

3

這似乎是合乎邏輯的。

檢查負載的API,你可能想看看它實際上加載,或者如果它encoutners錯誤

$("#result").load("/not-here.php", function(response, status, xhr) { 
if (status == "error") { 
    var msg = "Sorry but there was an error: "; 
    $("#result").html(msg + xhr.status + " " + xhr.statusText); 
    } 
}); 

API LINK:http://api.jquery.com/load/

有時調試信息是一個很好的第一步任何解決方案

2

關閉腳本標記在哪裏?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"> 
</head> 

你的代碼需要

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
</head> 
+0

我有兩個問題。這是其中之一。當然,我曾多次嘗試過這種方式,因爲之前我沒有把結束標記留在......當我以某種方式問這個問題時,錯過了它。謝謝! – groovepriest 2011-05-05 14:53:45