如何检测Tumblr上的单个帖子/页面?

时间:2012-02-07 16:22:00

标签: 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){
        alert("Viewing a single POST or PAGE!");
    }
});

我想知道这是否是最好的方法,还是有替代方案?

3 个答案:

答案 0 :(得分:30)

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

  

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

     

{block:PermalinkPage} {/ block:PermalinkPage}在永久链接后的页面上呈现。

所以基本上,包含在 IndexPage 块中的代码只会在可以显示多个帖子的页面上运行,无论是文本,照片,视频等帖子。

...包含在永久链接页面中的代码只会针对单个帖子永久链接页面运行。

答案 1 :(得分:0)

每个帖子都有一个div类的帖子。所以,用post类来计算div的数量。

如果没有jQuery,可以这样:$('div.post').lengthdocument.getElementsByClassName('post')

答案 2 :(得分:0)

要检测它是否在页面帖子,我已经创建了适合我的脚本。

{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;
}