2012-04-28 51 views
1

我正在尋找一個相當於jquery的load()方法,它將脫機工作。我從jquery的文檔中知道它只能在服務器上運行。我有一些文件,我需要在這些文件中調用特定<div>內的html。我只想把整個網站放在沒有互聯網連接的計算機上,並且讓網站的這一部分(load()部分)的功能就像連接到互聯網一樣。謝謝。jquery load()相當於離線使用

編輯:順便說一句,它不一定是js;它可以是任何可以工作的語言。

EDIT2: 我的示例代碼(以防萬一有語法錯誤,我缺少的;這是在同一個目錄中的文件):

function clickMe() { 
    var book = document.getElementById("book").value; 
    var chapter = document.getElementById("chapter").value; 
    var myFile = "'" + book + chapter + ".html'"; 
    $('#text').load(myFile + '#source') 
} 
+0

如果你把它放在本地服務器上,它將在沒有互聯網連接的情況下工作。 – keune 2012-04-28 09:55:27

+0

我敢肯定,情況並非如此,無論是由經驗和B/C的鏈接像[這](http://stackoverflow.com/questions/7100462/can-i-use-event-load-offline-與文本文件)。 – preahkumpii 2012-04-28 09:56:55

+0

編輯:本地服務器,是的,我認爲它會。抱歉。但我打算分發給那些不具備製作本地服務器知識的人 – preahkumpii 2012-04-28 09:57:41

回答

3

您無法通過文件協議實現load(),也沒有其他ajax請求可以用於html文件。即使預先編制了協議,我仍然嘗試使用crossDomain和isLocale選項,但沒有任何成功。

的問題是,即使jQuery是試圖瀏覽器將停止對安全問題(大部分瀏覽器以及下面的FF作品的片段)的要求,因爲它允許您加載區域文件,這樣你可以得到獲得了不少東西的。

你可以在本地加載的一件事是JavaScript文件,但這可能意味着改變了很多應用程序/網站架構。

只適用於FF

$.ajax({ 
    url: 'test.html', 
    type: 'GET', 
    dataType: 'text', 
    isLocale: true, 
    success: function(data) { 
     document.body.innerHTML = data; 
    } 
}); 

做什麼FF也就是它檢測到請求的本地文件的文件是文件協議太當其他沒有。我不確定它是否對您可以請求的文件類型有限制。

0

,您仍然可以使用JQuery的負載功能,在這背景:

你將可以在你的頁面上添加一個OfflineContent格:

<div id="OfflineContent"> 

</div> 

然後點擊一個按鈕,電話:

$('#OfflineContent').load('OfflinePage.html #contentToLoad'); 

按鈕代碼:

$("#btnLoadContent").click(function() { 
    $('#OfflineContent').load('OfflinePage.html #contentToLoad'); 
}); 

在OfflinePage.html你可以有有所謂contentToLoad另一部分,其將顯示初始頁面上。

+0

目標html頁面(OfflinePage.html)是否必須位於同一個目錄中,或者是否也可以位於子目錄中?現在它在一個子目錄中,我認爲它不起作用。 – preahkumpii 2012-04-28 09:59:47

+0

@preahkumpii - 我試過一個子目錄,它沒有工作。嘗試將其添加到與初始頁面相同的目錄中,如果我找到子目錄的解決方法,我會回覆您。 – 2012-04-28 10:03:59

+0

似乎沒有在同一個目錄中工作。 – preahkumpii 2012-04-28 10:07:35