2011-10-05 76 views
1

花了3小時閱讀參考,但仍然沒有效果,所以在這裏問。通過jQuery加載本地文件

操作系統:Windows 7(是相關的?)
瀏覽器:歌劇11.51
jQuery的:在本地計算機上1.6.2


兩個文件,main.html中菜單。 html在同一個文件夾中。

main.html中:

<html> 
    <head> 
    <script type="text/javascript" src="js/jquery-1.6.2.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
     // append contents 
     $('#menu').load('menu.html'); 
     }); 
    </script> 
    </head> 
    <body> 
    <table> 
     <tr> 
     <td id="menu"></td> 
     </tr> 
    </table> 
    </body> 
</html> 

menu.html:

<html> 
    <head></head> 
    <body> 
    menu tree 
    </body> 
</html> 

正如我想,當我打開main.html中,應該有一個表,包含 「菜單樹」 一個細胞串。例如,它適用於IE。但Opera沒有顯示任何結果。

我用load()的可選回調調試了東西,它顯示load()的結果狀態是「error」。

我在做什麼錯?

+0

您是在Web服務器('http://')還是文件夾('file://)下運行? –

+0

我在本地文件夾中運行。 – iehrlich

回答

4

在Opera中,您必須設置標誌Allow File XMLHttpRequest(opera:cofig - User Prefs)。

在谷歌瀏覽器中,您必須使用選項參數 - 允許運行瀏覽器的文件訪問文件,例如:「C:\ Documents and Settings \ User \ Local Settings \ Application Data \ Google \ Chrome \ Application \ chrome.exe「 - 允許從文件訪問文件

+0

是的,這有幫助,但還有一個問題。這種結構(意思是界面HTML文件和許多其他交叉引用的文件被上傳到接口)旨在被部署在CD盤上並交付給最終用戶。當然,要求每個最終用戶打開和關閉瀏覽器標誌都是不可選的。這個問題是否有一個通用的解決方案? – iehrlich

+0

如果它在CD上,那麼它是靜態的 - 爲什麼你動態加載菜單?只需添加html而不使用js。 –

0

您可能想要擺脫Menu.html中的<body>,<head><html>標記。

您現在的做法是無效的HTML,因爲文檔中只允許有一個<body>,<head><html>標記。

變化Menu.Html到

<p> 
    Menu 
</p> 

試一下!

+0

這樣做,但仍然沒有效果。 – iehrlich

+0

確保你也在服務器上。就像不在本地主機上一樣,這可能是你的問題。 – Eganr