2013-07-02 35 views
0

我有一個網站,其中的所有頁面內容在一個頁面中稱爲「pagecontents」。點擊導航欄中的菜單時,會觸發jQuery加載函數,並將相關內容加載到主頁面中。通過網址哈希運行javascript功能

它工作的很好,但是每當一個特定內容被加載時,我都會在URL中添加一個哈希值,以便用戶在鍵入或粘貼帶有哈希值的URL時可以直接查看相關內容。這工作正常在我的本地主機,但不是在遠程主機我不知道什麼是問題。

if(location.hash == '#web') { 

       $('#contentFetch').load('pagecontents.php #webC'); 

      }if(location.hash == '#graphic') { 

       $('#contentFetch').load('pagecontents.php #graphicC'); 

      }if(location.hash == '#mobile') { 

       //$('#testLocation').text("mobile Works"); 
       $('#contentFetch').load('pagecontents.php #mobileC'); 

      }if(location.hash == '#contact') { 

       $('#contentFetch').load('pagecontents.php #contactC'); 

      }else{ 
       $('#contentFetch').load('pagecontents.php #indexC'); 
       } 

編輯:關於在查詢字符串的哈希: 網站URL例如: 'www.mywebsite.com/'。當我在最後添加'#graphic'時:'www.mywebsite.com/#graphic'它不會加載內容。我注意到,如果繼續按下輸入,即使沒有加載,然後加載!!!?它看起來非常不緊密,因爲它加載了1次5.我不知道在現實世界中使用它是否可靠,還是有另一種方法呢?謝謝邁克

+1

我們沒有足夠的信息來了解什麼是不工作。 PHP文件沒有運行? AJAX命令無法找到該文件?頁面片段不在外部文件中嗎?可能有多種原因。當您直接在瀏覽器中訪問它時,「pagecontents.php」能正確加載嗎? – Blazemonger

+0

1)URI規範不允許空格; 2)哈希後的其餘字符串不會發送到服務器。使用爲uri參數設計的字符 - ? 'load(「pagecontent.php?section = contactC」)' – Tommi

+0

Blazemonger教會了我,它是一個URI後面可以跟一個空格和一個jQuery選擇器:http://api.jquery.com/load/#loading-頁面片段 – David

回答

0

請務必檢查您的主機正在使用的運行版本,並確保它們符合您在本地使用的版本。

通常,主機將運行一個經常過時的軟件版本,以適應舊版網站。 (例如運行PHP 4而不是PHP 5)。

+2

它是在客戶端執行的JavaScript,而不是像PHP這樣的服務器端語言。 – David

+0

@David但外部文件是PHP,可能該文件沒有按預期執行。 – Blazemonger

+0

那麼如果它沒有運行,那麼當然在某處出現錯誤。您是否使用過Chrome開發工具? –