2011-11-27 33 views
0

我正在爲Blogger(blogspot)創建一個gadjet,這個小部件將被放置在所有頁面(發佈,存檔和coutegory頁面)上,但我只需要獲取當前打開的帖子的url(不是分類頁面,不是歸檔頁面沒有任何其他類型的頁面)。如何知道當前打開的頁面是否是帖子頁面,而不是使用javascript的類別或存檔頁面?

我只在我的gadjet中使用javascript代碼,所以我需要在JS中這樣做。

換句話說,我怎麼知道當前頁面是帖子頁面?

回答

0

您可以對當前頁面上的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" 
0

它一旦你找出什麼是員額和其他資源的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)) { 
    //... 
} 
+0

其實我已經想到了這一點,但我不知道如果這是一個好方法。網址總是有blogspot.com? – Cassini

相關問題