2012-08-30 12 views
0

我正在爲CSS模板開發我自己的模板選擇器。目前,它工作正常,單擊選擇框中的名稱可更改模板。但是有1個功能缺失。除了url

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

可以很明顯的看到網址中包含?template=corporate在它的結束,因此,如果您輸入URL,它加載企業模板。

這是我的選擇至今:http://joomjunk.co.uk/demo

正如你可以看到,我添加了一個哈希+模板名稱,以在選擇模板的URL的末尾,但是如果你複製和粘貼URL到一個新的例如,它加載默認模板。

所以我的問題是,如何添加類似於?template = corporate的東西,並在加載該特定網址時加載正確的模板?

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

在此先感謝。

+0

爲什麼不'window.location的在返回第二個元素。散列工作?看起來像從URL參數加載模板的合理方式。 – David

+0

'location.search'也許?我不完全確定你到底想要達到什麼目的。 – pimvdb

+0

@從我讀過的大衛哈希,哈希是一個錨點。 pimvdb,如果你點擊我在我的問題中提供的鏈接,你會發現它會加載公司模板,因爲URL的末尾有'?template = corporate'。這是我想要的。 – Lodder

回答

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" 

這將各執=的字符串,然後數組

+0

感謝您指點我正確的方向。我已經完成了1個模板,現在需要完成剩下的工作,或者瞭解如何按照「foreach」命令行操作 – Lodder

1

如果您的網址類似http://foo.bar/#corporate,您可以在javascript中檢查window.location.hash並立即加載該模板。

看起來很合理,因爲您已經在下拉列表中添加哈希值 - 如果用戶選擇刷新頁面,用戶將看到相同的模板。

根據hash屬性,您甚至可以在右側下拉菜單項上觸發點擊事件,但這需要DOM完全加載。