2

我已经从我的 Tumblr 主题中删除了所有以帖子为中心的标记,而是使用 ajax 来获取数据。到目前为止,一切都很好。现在我想为每个帖子添加一个赞按钮,但我似乎找不到任何关于如何做到这一点的文档(不求助于他们的 api,这需要 oauth 才能工作)。

当您使用 ajax 获取帖子并且您宁愿不使用 oauth 使用完整的 api 时,是否无法包含类似按钮?

4

1 回答 1

0

Tumblr 对单个帖子的“点赞按钮”的新实现使用一个<iframe>元素来发挥作用。此 iframe 的 URL 只能通过您的主题代码获得。

例如:

{Block:Posts}

    <div class="like-button">{LikeButton}{/div>

{/Block:Posts}

{LikeButton}将呈现的内容如下所示:

<iframe id="like_iframe_84714330251" src="http://assets.tumblr.com/assets/html/like_iframe.html?_v=fa292ab73ee80893ffdf1edfabaa185a#name=blog-name-&amp;post_id=84814329251&amp;rk=reKNyFfj" scrolling="no" width="20" height="20" frameborder="0" class="like_toggle" allowtransparency="true"></iframe>

似乎没有任何方法可以在不包括{LikeButton}内部的情况下获得此{Block:Posts}

对于使用 ajax,您可以在页面上包含一个隐藏元素,该元素加载此信息并在使用 ajax 加载每个帖子页面时将其解析出来。

因此,如果在您的主题中包含以下内容:

<div id="posts-info" style="display: none;">
{Block:Posts}

    <div class="post-info" data-postid="{PostID}">{LikeButton}</div>

{/Block:Posts}
</div>

当您使用 AJAX 加载帖子时,您还必须加载 Tumblr 的正确页面(在主题中使用此代码)。

然后,您可以通过将帖子 ID 与您使用 AJAX 获取的帖子匹配并插入该<ifame>代码来解析此信息。

这是一个非常全面的解决方案,但它应该可以工作。

于 2014-05-05T11:49:28.307 回答