2

Tumblr テーマから投稿中心のマークアップをすべて削除し、代わりに ajax を使用してデータを取得しています。ここまでは順調ですね。今、各投稿にいいねボタンを追加したいのですが、これを行う方法に関するドキュメントが見つからないようです(oauthが必要なAPIに頼らなければ)。

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 の正しいページも読み込む必要があります (このコードはテーマに含まれています)。

次に、AJAX で取得した投稿に投稿 ID を一致させ、その<ifame>コードを挿入することで、この情報を解析できます。

これは本当に回りくどい解決策ですが、うまくいくはずです。

于 2014-05-05T11:49:28.307 に答える