我还没有找到一种方法来检测用户当前是否正在查看某个页面,帖子或整个文章列表。 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!");
}
});
我想知道这是否是最好的方法,还是有替代方案?
答案 0 :(得分:30)
我找到了更合适的解决方案。根据Tumblr的文件:
{block:IndexPage} {/ block:IndexPage}在索引(帖子)页面上呈现。
{block:PermalinkPage} {/ block:PermalinkPage}在永久链接后的页面上呈现。
所以基本上,包含在 IndexPage 块中的代码只会在可以显示多个帖子的页面上运行,无论是文本,照片,视频等帖子。
...包含在永久链接页面中的代码只会针对单个帖子永久链接页面运行。
答案 1 :(得分:0)
每个帖子都有一个div类的帖子。所以,用post类来计算div的数量。
如果没有jQuery,可以这样:$('div.post').length
或document.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;
}