Javascript 如何在Tumblr上的单个帖子/页面上检测是否存在?
我还没有找到一种方法来检测用户当前是否正在查看页面、帖子或整个文章列表。WordPress具有诸如is_page、is_single等功能,但是有人有办法使用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){
$(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}
变量吗?