使用jQuery修改url参数而不刷新页面

时间:2015-02-07 10:09:27

标签: javascript jquery

我搜索了几个小时,我在jquery中找到了一个修改当前页面url的脚本。例如

?profile_id=<%=(rs_resq.Fields.Item("profile_id").Value)%>#inter

但是,当我使用它时,页面重新加载并且我放弃了DOM中所有先前的缓存数据。我认为发生这种情况的原因是链接属性

rel="external"

所以我把它取下然后停止工作。

<script>
$("#inter").live("pageshow", function onPageShow(e,data){

    alert('Page 2 - CID: ' + getParameterByName('profile_id'));
});

function getParameterByName(name) {
    var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
    return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
}     
    </script>

1 个答案:

答案 0 :(得分:0)

不,你不能!

对于互联网上的特定资源,网址始终是唯一的。例如,

www.example.com/resource1.html

总是与

不同
www.example.com/resource2.html

一旦在地址栏中更改了网址,浏览器就会寻找网址所指向的资源,而不是同一个或未知的资源。

此外,哈希符号(#)表示同一页面上的锚点,因此如果您想更改URL以指向同一页面上的锚点,例如:

www.example.com/resource1.html#anotherColumn

它只会将视图滚动到引用的部分,而不是刷新内容。

有一些框架可用,例如 - AngularJS,KnockoutJS等,它允许您使用相同的URL但不同的 shebang 指针访问动态内容 - #!。但同样,您的网页会随着网址的每次更改而刷新。

希望有所帮助!