javascript - Tumblr 上的快速点赞按钮

标签 javascript html css tumblr

谁能给我解释一下这个 page 中的点赞按钮是怎么回事?有用吗?

如您所见,整个页面加载完成后,将鼠标悬停在帖子或图片上会显示几个按钮,包括一个“赞”按钮(左下角的心形按钮)。

谁能解释一下它是如何工作的?一段时间以来,我一直在努力弄明白,在源代码上尝试脚本,但无济于事。

最佳答案

我为此写了一个 Tumblr 教程:http://like-button.tumblr.com

要将赞保存到服务器,请使用以下 URL 并将其设置为 src不可见的属性 <iframe> :

http://www.tumblr.com/<command>/<oauthId>?id=<postId>
  • 命令:likeunlike
  • oauthId:{ReblogURL} 的最后八个字符
  • postId:{PostID}

例子:

http://www.tumblr.com/like/23err8u4?id=844392923

将以下代码块剪切并粘贴到您的主题中,紧接在 </head> 之前.这会在每个帖子上给你一个赞按钮,看起来像默认的 Tumblr 灰色心形。当您将鼠标悬停在它上面和单击它时,它会变成红色。如果您再次点击它,它将再次变为灰色并删除 Like。

<style>
.my-like {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAARCAYAAAA/mJfHAAABH0lEQVQ4y62T30vCUBiGv/9YuhBLkCA08FdogRFFYFEUhhZNCCQoSESiIOii68pl5qV6s8Eb7+SMHXNs6S7ejZ3zvA+ccT4BICofvS88dJ7w8vqG8WQC754K17lPjrx3z3l8D4YoVaqIrWbcJNbzaHefNZjfXPdy5b0jsO/IRqMxUpmSBnhz2bx1QL79GPbpEePmzhdSyW8fBDL0SK68HwiGCT2S3NiKREaPzP7QRRNPZSHpwm4kMnqkYbQikdEjZv8HK2ubS4nY75mD6WU8qzeXkrHvToBlWSjuHC4kYo99V8bwBnM0/iMiz542myq2bSPskcmR/zPos7lvP8Lv/nGd+/N6c2Xq2KcXhiY6qV1rxwotU3n/NHF8fgW+g9hfsHJlJUYljcgAAAAASUVORK5CYII=) !important;
    height:17px;
    width:19px;
    cursor:pointer;
    display:inline-block;
    vertical-align:top;
}
.my-liked, .my-like:hover {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAARCAYAAAA/mJfHAAABSklEQVQ4y2P4//8/Awy/O3fu/905c/4/2779/69Pn/4jy8Hwz/fv/z/buvX/vfnz/7+/eBFFDZj4cOXK/8O+Pv+36+rA8W4zs/8Ply1DUXx/4cL/u0yMUdQdCQ76/+nWLbA6hq+PH//fbW6OogAZ3+zvByu81t6OU80ea6v/P16//s9wqboKpyIYPhYeTlDN1abG/wz7HR0JKiQGH3Bz+8+ww0CfKobtMjb6z0ANg+CGgQKPKt50dfnPcL6wkCqGXaoo/8/w5tgxyg3T0wUnYHBiPJuZSZFhF8pK/8NzACjrgKKWHINAOef3168Iw0D429OnGFmKEAZlJVDKR8mbMAyy4XRqClEGnc3J+f/nxw/MjI6OQflxh6EBzvR0Z9o0rCUKVsNA+MuD+/9PJiSgGHQmPf0/KDhw6cFpGAy/OnAAbOibEyf+E1ILAFBjDrchm7KrAAAAAElFTkSuQmCC) !important;
    height:17px;
    width:19px;
    cursor:pointer;
    display:inline-block;
    vertical-align:top;
}
</style>
<script>
window.onload = function () {
document.body.insertAdjacentHTML( 'beforeEnd', '<iframe id="my-like-frame" style="display:none;"></iframe>' );
document.addEventListener( 'click', function ( event ) {
    var myLikeLink = event.target;
    if( myLikeLink.className.indexOf( 'my-like' ) > -1 ) {
        var myLikeFrame = document.getElementById( 'my-like-frame' ),
            liked = ( myLikeLink.className == 'my-liked' ),
            command = liked ? 'unlike' : 'like',
            reblog = myLikeLink.getAttribute( 'data-reblog' ),
            postId = myLikeLink.getAttribute( 'data-id' ),
            oauth = reblog.slice( -8 ),
            likeUrl = 'http://www.tumblr.com/' + command + '/' + oauth + '?id=' + postId;
        myLikeFrame.src = likeUrl;
        liked ? myLikeLink.className = 'my-like'
            : myLikeLink.className = 'my-liked';
    };
}, false );
};
</script>

然后将以下按钮代码剪切并粘贴到您想要点赞按钮所在的主题中(这必须在您的 {block:Posts} block 内)。

代码:

<div class="my-like" data-reblog="{ReblogURL}" data-id="{PostID}"></div>

关于javascript - Tumblr 上的快速点赞按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8654531/

相关文章:

javascript - jQuery 显示/隐藏影响同级选择框功能

html - 为什么 Bootstrap 中的 .row 和 .container-fluid 会发生这种情况?

javascript - redux-actions 库导出的操作类型无法重复使用

javascript - React native - 如何过滤数组异步(async/await)

jquery - 切换突然不起作用,JQuery

html - 即使高度增加,滚动条也会出现在 safari(windows)中

javascript - 防止超链接在新标签页/窗口中打开

javascript - 在灯箱的 JQuery 选择器中使用 JS 变量时出现语法错误

javascript - Highchart 中 X 轴排序错误

javascript - 从多个文件加载多个 JSON 对象