0

Blogger (blogspot) 用のガジェットを作成しています。このウィジェットはすべてのページ (投稿、アーカイブ、および coutegory ページ) に配置されますが、現在開いている投稿の URL のみを取得する必要があります (カテゴリ ページではなく、アーカイブ ページではありません)。他の種類のページ)。

私はガジェットで JavaScript コードしか使用しないので、JS でそれを行う必要があります。

言い換えれば、現在のページが投稿ページかどうかをどのように知ることができますか?

4

2 に答える 2

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
"/questions/8288422/how-can-i-know-if-the-current-opened-page-is-a-post-page-and-not-category-or-arc/8288481"
于 2011-11-27T19:47:59.607 に答える
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)) {
  //...
}
于 2011-11-27T19:51:11.437 に答える