我如何知道当前打开的页面是否是帖子页面,而不是使用javascript的类别或归档页面?

我如何知道当前打开的页面是否是帖子页面,而不是使用javascript的类别或归档页面?,javascript,widget,blogger,blogspot,Javascript,Widget,Blogger,Blogspot,我正在为Blogger(blogspot)创建一个gadjet,这个小部件将放置在所有页面(post、archive和coutegory页面)上,但我只需要获取当前打开的帖子的url(不是类别页面,不是归档页面,不是任何其他类型的页面) 我只在gadjet中使用javascript代码,所以我需要在JS中这样做 换句话说,我如何知道当前页面是否为post页面?您可以在位置全局变量中查看有关当前页面的一些信息: >>> location.href "http://stackove

我正在为Blogger(blogspot)创建一个gadjet,这个小部件将放置在所有页面(post、archive和coutegory页面)上,但我只需要获取当前打开的帖子的url(不是类别页面,不是归档页面,不是任何其他类型的页面)

我只在gadjet中使用javascript代码,所以我需要在JS中这样做


换句话说,我如何知道当前页面是否为post页面?

您可以在
位置
全局变量中查看有关当前页面的一些信息:

>>> 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"

一旦你找到了帖子和其他资源的URL模式,这就很容易了。此简单函数的作用如下:

function isPostUrl(url) {
  return url.match(/^http:\/\/.*\.blogspot.com\/\d{4}\/\d{2}\/.*\.html$/) != null
}
(可能可以改进,我不是JavaScript/regex大师)。这只是检查URL是否匹配post地址模式,类似于
http://foo.blogger.com/YYYY/MM/beautified-title.html

一点测试(无耻的秘密):

显然,您将它与
window.location.href
一起使用:

if(isPostUrl(window.location.href)) {
  //...
}

实际上我已经考虑过了,但我不确定这是不是一个好方法。还有一件事就是这个网址总是有blogspot.com?
if(isPostUrl(window.location.href)) {
  //...
}