Javascript 如何在Tumblr上的单个帖子/页面上检测是否存在?

Javascript 如何在Tumblr上的单个帖子/页面上检测是否存在?,javascript,jquery,tumblr,Javascript,Jquery,Tumblr,我还没有找到一种方法来检测用户当前是否正在查看页面、帖子或整个文章列表。WordPress具有诸如is_page、is_single等功能,但是有人有办法使用Tumblr吗?我目前正在使用以下代码对其进行黑客攻击: $(function() { var uri_root = 'http://' + window.location.hostname + '/'; var uri = window.location.href; if(uri_root !== uri){

我还没有找到一种方法来检测用户当前是否正在查看页面、帖子或整个文章列表。WordPress具有诸如is_page、is_single等功能,但是有人有办法使用Tumblr吗?我目前正在使用以下代码对其进行黑客攻击:

$(function() {
    var uri_root = 'http://' + window.location.hostname + '/';
    var uri = window.location.href;
    if(uri_root !== uri){
        alert("Viewing a single POST or PAGE!");
    }
});

我想知道这是做这件事的最好方法还是有其他选择?

每个帖子都有一个班级帖子。因此,计算具有post类的div的数量


类似这样:
$('div.post').length
document.getElementsByClassName('post')
如果没有jQuery。

我找到了一个更合适的解决方案。根据Tumblr的文件:

{block:IndexPage}{/block:IndexPage}在索引(post)页面上呈现

{block:PermalinkPage}{/block:PermalinkPage}在post-permalink页面上呈现

因此,基本上,IndexPage块中包装的代码将只在可以显示多篇文章的页面上运行,无论是文本、照片、视频等


…而包装在永久链接页面中的代码将只在单个post永久链接页面上运行。

为了检测它是否位于页面post,我创建了这个脚本,它对我来说运行良好

{block:PermalinkPage} 
  var page = {JSPostID};
  if(page == '') alert('Page!');
  else alert('Post');
{/block:PermalinkPage}

或者使用最简单的函数

function isPage(){
    {block:PermalinkPage} if({JSPostID} == '') return true; {/block:PermalinkPage}
    return false;
}
function isPost(){
    {block:PermalinkPage} if({JSPostID} != '') return true; {/block:PermalinkPage}
    return false;
}

我尝试这个解决方案,效果很好,谢谢dude+1的回答!这个解决方案确实比JS解决方案要充分得多。那么检测Ask页面呢?这里有街区吗?我在页面上嵌入了一个询问框iframe,但我只想在用户导航到询问页面时显示它。目前它显示在ask和permalink页面上。@Owzzz这些静态页面没有一个,但是
{block:Date}{/block:Date}
只显示单个帖子页面的内容,这意味着您可以在这两个页面之间进行半排序。至于将ask框嵌入ask页面,这是不必要的,因为tumblr已经为您生成了一个带有ask框的ask页面。您可以详细说明
{JSPostID}
变量吗?