除了网址

时间:2012-08-30 16:12:38

标签: javascript html5 url

我正在为CSS模板开发自己的模板选择器。目前,它工作正常,点击选择框中的名称更改模板。但是缺少1个功能。

如果你看这里:http://www.demo.joomforest.com/?template=corporate

您显然可以看到网址末尾包含?template=corporate,因此如果您输入该网址,则会加载公司模板。

到目前为止,这是我的选择器:http://joomjunk.co.uk/demo

如您所见,我在选择模板时在网址末尾添加了哈希+模板名称,但是如果您将该网址复制并粘贴到新标签中,则会加载默认模板。

所以我的问题是,如何添加类似于?template = corporate的内容并在加载特定网址时加载正确的模板?

我不是要求完整的代码,而是指向正确的方向。

提前致谢。

2 个答案:

答案 0 :(得分:1)

如果您有http://foo.bar/#corporate之类的网址,则可以查看javascript中的window.location.hash并立即加载该模板。

似乎合理,因为您已经在下拉菜单中添加了哈希值 - 如果用户选择刷新页面,则会看到相同的模板。

您甚至可以根据hash属性在右侧下拉菜单项上触发点击事件,但这需要完全加载DOM。

答案 1 :(得分:1)

window.location.search

这将包含您网址中?后面的内容,包括 ?

如果

window.location.href === "http://www.demo.joomforest.com/?template=corporate"

然后

window.location.search === "?template=corporate"

如果要解析查询字符串,可以使用许多资源。但是,如果您只想针对这种特定情况进行此操作:

var tmpl = window.location.search.split('=')[1];
// tmpl === "corporate"

这将在=上拆分字符串,然后返回数组中的第二个元素