我正在爲Blogger(blogspot)創建一個gadjet,這個小部件將被放置在所有頁面(發佈,存檔和coutegory頁面)上,但我只需要獲取當前打開的帖子的url(不是分類頁面,不是歸檔頁面沒有任何其他類型的頁面)。如何知道當前打開的頁面是否是帖子頁面,而不是使用javascript的類別或存檔頁面?
我只在我的gadjet中使用javascript代碼,所以我需要在JS中這樣做。
換句話說,我怎麼知道當前頁面是帖子頁面?
我正在爲Blogger(blogspot)創建一個gadjet,這個小部件將被放置在所有頁面(發佈,存檔和coutegory頁面)上,但我只需要獲取當前打開的帖子的url(不是分類頁面,不是歸檔頁面沒有任何其他類型的頁面)。如何知道當前打開的頁面是否是帖子頁面,而不是使用javascript的類別或存檔頁面?
我只在我的gadjet中使用javascript代碼,所以我需要在JS中這樣做。
換句話說,我怎麼知道當前頁面是帖子頁面?
您可以對當前頁面上的location
全局變量的一些信息:
>>> location.href
"http://stackoverflow.com/questions/8288422/how-can-i-know-if-the-current-opened-page-is-a-post-page-and-not-category-or-arc/8288481#8288481"
>>> location.pathname
"https://stackoverflow.com/questions/8288422/how-can-i-know-if-the-current-opened-page-is-a-post-page-and-not-category-or-arc/8288481"
它一旦你找出什麼是員額和其他資源的URL模式是很容易。這個簡單的功能做的伎倆:
function isPostUrl(url) {
return url.match(/^http:\/\/.*\.blogspot.com\/\d{4}\/\d{2}\/.*\.html$/) != null
}
(大概可以提高,我不是的JavaScript /正則表達式大師)。這只是檢查URL是否與帖子地址模式匹配,如http://foo.blogger.com/YYYY/MM/beautified-title.html
。
測試(無恥的祕密)的一點點:
isPostUrl("http://nurkiewicz.blogspot.com/2011/11/spring-pitfalls-transactional-tests.html") //true
isPostUrl("http://nurkiewicz.blogspot.com/search/label/spring") //false
isPostUrl("http://nurkiewicz.blogspot.com/2011_11_01_archive.html") //false
顯然你同伴與window.location.href
使用它:
if(isPostUrl(window.location.href)) {
//...
}
其實我已經想到了這一點,但我不知道如果這是一個好方法。網址總是有blogspot.com? – Cassini