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

发布于 2024-12-18 07:10:45 字数 203 浏览 2 评论 0原文

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

我只在我的 gadjet 中使用 javascript 代码,所以我需要在 JS 中执行此操作。

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

I'm creating a gadjet for Blogger(blogspot), this widget will be placed on all pages(post,archive and coutegory pages) but I need to get the url of the current opened post only(not category page, not archive page not any other kind of pages).

I only use javascript code in my gadjet so I need to do that in JS.

In other words how can I know if the current page is post page?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

空心↖ 2024-12-25 07:10:45

您可以在 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"

You can some information about the current page on the location global variable:

>>> 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"
浊酒尽余欢 2024-12-25 07:10:45

一旦您找出帖子和其他资源的 URL 模式,一切就变得非常简单。这个简单的函数可以解决问题:(

function isPostUrl(url) {
  return url.match(/^http:\/\/.*\.blogspot.com\/\d{4}\/\d{2}\/.*\.html$/) != null
}

可能可以改进,我不是 JavaScript/regex 专家)。这只是检查 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)) {
  //...
}

It's pretty easy once you find out what is the URL pattern of posts and other resources. This simple function does the trick:

function isPostUrl(url) {
  return url.match(/^http:\/\/.*\.blogspot.com\/\d{4}\/\d{2}\/.*\.html$/) != null
}

(probably can be improved, I am not JavaScript/regex guru). This simply checks whether the URL matches post address pattern, something like http://foo.blogger.com/YYYY/MM/beautified-title.html.

A little bit of testing (shameless surreptitious):

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

Obviously you use it in companion with window.location.href:

if(isPostUrl(window.location.href)) {
  //...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文