2012-03-06 175 views
2

我正在嘗試爲jQuery操作創建自定義網址。我不確定這是否可以完成,或者我是否使用了正確的術語。我有一個網站上有幾個按鈕,當你點擊其餘的按鈕時,向下滑動顯示與按鈕相關的信息。我想爲按鈕製作固定鏈接,以便訪問者可以共享一個URL,以便在加載時打開特定信息。請原諒我,如果這已被回答,我真的不知道要搜索什麼或從哪裏開始。jQuery的自定義網址

下面是我一直致力於幫助理解我想要做的頁面的鏈接。

http://dl.dropbox.com/u/2600525/Overflow/home.html

另外我有Firefox的不正確執行的slideToggle的問題。如果任何人有任何關於如何解決的信息,我會大大appriciated它。

謝謝

回答

1

可以使用window.location.search更新您的網址的查詢字符串的一部分,允許用戶共享特定的URL,將根據選擇的按鈕是不同的。

$('#myButton').click(function(){ 
    window.location.search = "location=" + $(this).val(); // or any property from your clicked button 
}); 

那麼,當你網頁是由其中一個網址訪問,你可以把一個簡單的檢查了相同的屬性,並導航根據所提供的價值

http://dl.dropbox.com/u/2600525/Overflow/home.html?location=home ==> home page 
http://dl.dropbox.com/u/2600525/Overflow/home.html?location=anout ==> about page 

使用相同的技術,您可以利用window.location.hash爲了同樣的目的,但現在你會做所有的按鈕href是這樣的:

<a href="#WhoWeAre"></a> 
<a href="#WhatWeDo"></a> 

然後,使用T他以同樣的方式更新網址,並檢查您的網頁訪問時的值。

此外,我強烈建議您訪問以下頁面https://developer.mozilla.org/en/DOM/window.location,這將解釋您在處理window.location時所具有的各種選項。

+0

我很抱歉,但我不完全理解我的jQuery是什麼樣子與此到位以及我的href應該是什麼樣子。我對編碼非常陌生,對不理解的道歉表示歉意。 – buckeytucker 2012-03-06 14:55:50

+0

Mohammed提供了關於'location.search'的示例,並提供了關於'location.hash'的示例。你還有什麼?我編輯了我的回覆,其中包含一個使用'location.hash'的完整工作示例。我希望這是你正在尋找的。 – Kurt 2012-03-06 22:46:02

0

我在一個使用了大量AJAX的站點上工作(加載內容時沒有刷新整個頁面)。他們希望歷史和書籤成爲可能。所以我們使用url散列來表示帶有動態數據的頁面部分(例如,site.com/account#settingssite.com/account#profile)。根據(document).load,我們將根據哈希加載適當的數據段。

您可以:

  1. 獲得當前哈希搭配:

    var hash = window.location.hash; 
    
  2. 集它

    window.location = '#...'; 
    // or (depending on use) 
    window.location.href = '#...'; 
    
  3. 傾聽變化與

    $(window).bind('hashchange',function() 
    { 
        ... 
    }); 
    

希望這會有所幫助。

編輯:包括一個基本工作示例:

  1. 創建一個文件index.html

  2. 裏面的index.htmlhead

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
    <script type="text/javascript"> 
    // load data from hash value (map it to url) 
    function load_hash() { 
        var hash = window.location.hash; 
        var content = $('#content'); 
        if (hash == '#about') { 
         content.load('about.html'); 
        } 
        else if (hash == '#contact') { 
         content.load('contact.html'); 
        } 
    } 
    
    // load data based on hash and listen to changes 
    $(document).ready(function() { 
        load_hash(); 
        $(window).bind('hashchange', function() { 
         load_hash(); 
        }); 
    }); 
    </script> 
    
  3. 裏面的:

    <a href="#about">About</a> 
    <a href="#contact">Contact</a> 
    <div id="content"></div> 
    
  4. 創建文件about.html,並在同一目錄contact.html;將任何文本在這些,但要確保你能區分這兩者(例如,我把<h1>About</h1><h1>Contact</h1>適當)