如何使用window.location.hash返回部分网址

时间:2013-05-21 12:35:08

标签: javascript jquery ajax

我真的被困了

我目前正在使用以下代码将动态加载页面的名称添加到网址

var value = $(this).attr('href');

    e.preventDefault();
    window.location.hash = value;

它几乎可以在url

中返回它

http://www.sitename.com/dev888/#http://www.sitename.com/dev888/page-name

但是我只想要像下面的例子那样返回网址的一部分

http://www.sitename.com/dev888/#/page-name

如何编辑上面的代码以获得我想要的结果?

感谢!!

3 个答案:

答案 0 :(得分:2)

您可以使用该值来获取最后一个

var value = $(this).attr('href');

    e.preventDefault();
    var parts = value.split("/");
    value = parts[parts.length-1]; 
    window.location.hash = value;

或者您可以将attr('href')更改为您想要的值:)

我希望这可以提供帮助

你可能想看一下pusState

https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/Manipulating_the_browser_history

答案 1 :(得分:0)

浏览器已经为您完成此操作。只需将链接的href设为哈希值,然后让用户正常点击它:

 <a href="#my-hash">Click!</a>

它会自动将#my-hash附加到网址。

尝试使用JavaScript完成此操作是完全错误的,除非您在某些条件下需要逻辑来阻止点击,即使这样,正确的行为是将您的哈希指定为链接的href,有条件地允许click事件为由浏览器处理。

答案 2 :(得分:0)

也许您觉得有趣的是获取页面标题并在哈希

中使用它
var current_title = $(document).attr('title');
e.preventDefault();
window.location.hash = current_title ;