jQuery将标记附加到URL而不刷新

时间:2016-02-09 18:37:40

标签: jquery html fragment-identifier

我试图创建一个" builder"用户可以从下拉列表中选择元素并构建各种网页的页面。我们无法访问数据库以获取此信息,因此我希望能够将这些元素保存在网址中,以便可以通过电子邮件发送或保存网址,并且脚本将会#34 ;写"每次有人访问它时页面(这仅用于模型和交付目的 - 不用于生产)。

我尝试使用哈希(#),但是当我这样做时,它会给我一个错误:.reduce(...)

我使用等号来确定我正在寻找的对象的哪个变体,这就是造成这个问题的原因。

当我切换到使用Uncaught Error: Syntax error, unrecognized expression: #h=3&f=2并在地址栏中使用问号(?)时,它工作正常,但我不知道如何更改网址(使用jquery / javascript)没有这样刷新页面。

我希望网址类似于window.location.searchwww.sample.com/?h=1&f=2。然后,在"建筑"过程中,我希望能够将所有不同的元素及其变体附加到网址中,例如www.sample.com/#h=1&f=2window.location.hash = window.location.hash + "a=1";

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这种方式应该有效。

var defaultState = {
   current: window.location.pathname
};

var requestParameters = [
   '?id=0',
   '&id=1',
   '&id=2' 
];

var path = window.location.pathname + requestParameters.join("");
window.history.pushState(defaultState, 'Title', path);

结果:http://example.com/?id=0&id=1&id=2