我正在为CSS模板开发自己的模板选择器。目前,它工作正常,点击选择框中的名称更改模板。但是缺少1个功能。
如果你看这里:http://www.demo.joomforest.com/?template=corporate
您显然可以看到网址末尾包含?template=corporate
,因此如果您输入该网址,则会加载公司模板。
到目前为止,这是我的选择器:http://joomjunk.co.uk/demo
如您所见,我在选择模板时在网址末尾添加了哈希+模板名称,但是如果您将该网址复制并粘贴到新标签中,则会加载默认模板。
所以我的问题是,如何添加类似于?template = corporate的内容并在加载特定网址时加载正确的模板?
我不是要求完整的代码,而是指向正确的方向。
提前致谢。
答案 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"
这将在=
上拆分字符串,然后返回数组中的第二个元素