2012-03-06 228 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>适当)