0

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

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

您可以清楚地看到 URL 包含?template=corporate在它的末尾,因此如果您输入该 URL,它会加载公司模板。

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

如您所见,我在选择模板时在 url 的末尾添加了一个哈希 + 模板名称,但是如果您将该 URL 复制并粘贴到新选项卡中,例如,它会加载默认模板。

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

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

提前致谢。

4

2 回答 2

1

如果你有一个类似的 URL,http://foo.bar/#corporate你可以window.location.hash在你的 javascript 中检查并立即加载该模板。

看起来很合理,因为您已经在下拉列表中添加了哈希 - 如果用户选择刷新页面,他们将看到相同的模板。

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

于 2012-08-30T16:33:01.680 回答
1
window.location.search

这将包含?URL 中的任何内容,包括?

如果

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

然后

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

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

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

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

于 2012-08-30T16:33:16.760 回答