用js实现博客打赏功能
前几天在一个博客中看到有一个打赏功能。其实简单说来就是在页面中加入动态DOM节点,使用的也是简单的HTML、CSS、JS这些前端的一些简单知识。在GitHub上有开源的代码,这里稍加改造就可以用在自己的博客中了。
最简单的使用方式是在页面中加入如下JS代码:
<script>
window.tctipConfig = {
staticPrefix: "http://static.tctip.com",
buttonImageId: 1,
buttonTip: "zanzhu",
list:{
alipay: {qrimg: "http://tctip.com/img/alipayqr.png"},
weixin:{qrimg: "http://littlebtc.com/images/yeshen.png"},
}
};
</script>
<script src="http://static.tctip.com/js/tctip.min.js"></script>
其中比较重要的是配置有staticPrefix,是原作者自己提供的静态文件相对路径,用来存放img和css;list是打赏方式,qrimg是设置打赏方式的二维码图片。
接下来是在博客园中使用。先在本地准备好静态文件:
JS文件,tctip.min.js;
css样式文件,myReward.css;
支付二维码,ialipay.bmp、iweixin.bmp;
支付方式图片,alipay.bmp、weixin.bmp;
赞助或者打赏按钮图片,tab_4.bmp(对应buttonImageId)。
博客园只能上传bmp图片,所以要将其他格式图片修改,然后在自己的博客园后台上传文件,这样前面的静态文件就可以使用刚刚上传了。
如果使用自己上传的静态文件,配置时就不要staticPrefix地址,提供imagePrefix和cssPrefix:
<script>
window.tctipConfig = {
imagePrefix: "图片文件的相对路径",
cssPrefix: "样式文件的相对路径",
//staticPrefix: "http://static.tctip.com",
buttonImageId: 4,
buttonTip: "dashang",
list:{
alipay: { qrimg: "支付宝二维码绝对路径"},
weixin: { qrimg: "微信二维码绝对路径"},
}};
</script>
<script src="js文件绝对路径"></script>
当然如果只是这样就完了,还是没有看作者的源JS代码,事实是不修改一下源码也无法使用的,其实主要是文件路径设置的问题。
打开JS源码,不是压缩的源码哦,除非你看的不眼花,也没人拦你的。
myConfig : {
imagePrefix : "",
cssPrefix : "",
/***
* 当staticPrefix不为空的时候,imagePrefix和cssPrefix失效
*/
staticPrefix : "",
buttonImageId : "3",
buttonTip : "dashang",
cssUrl: "/myRewards.css"
},
原来的cssUrl是/css/myRewards.css,因为博客园上传的文件没有文件夹,所以去掉css。可能大家想到了,img也有一样的问题。
listConfig:{
'alipay' : {icon: "alipay.bmp", name:"支付宝", desc: "支付宝打赏", className: ""},
'tenpay' : {icon: "img/tenpay.png", name:"财付通", desc: "财付通打赏", className:""},
'weixin' : {icon: "weixin.bmp", name:"微信", desc: "微信打赏", className:""},
'bitcoin' : {icon: "img/bitcoin.png", name:"比特币", desc: "比特币打赏", className:""},
'litecoin' : {icon: "img/litecoin.png", name:"莱特币", desc: "莱特币打赏",className:""},
'dogecoin' : {icon: "img/dogecoin.png", name:"狗狗币", desc: "狗狗币打赏", className:""}
},
支付方式列表中,修改图片相对路径,由于只使用了支付宝、微信两种方式,所以只修改他们的路径。其实还可以添加其他的支付方式在这里,就不赘述了。
buttonImageUrl: function(){
var id = tctip.myConfig.buttonImageId;
var tip = tctip.myConfig.buttonTip;
//return tctip.imageUrl("" + tip + "/tab_" + id + ".bmp");
return tctip.imageUrl("/tab_4.bmp");
},
支付按钮的图片路径,同样修改返回的相对路径。
这样在博客园后台的设置页面,在页首Html处添加上面的配置文件就可以了。
用js实现博客打赏功能的更多相关文章
- Lucene5.5.4入门以及基于Lucene实现博客搜索功能
前言 一直以来个人博客的搜索功能很蹩脚,只是自己简单用数据库的like %keyword%来实现的,所以导致经常搜不到想要找的内容,而且高亮显示.摘要截取等也不好实现,所以决定采用Lucene改写博客 ...
- 详细介绍如何自研一款"博客搬家"功能
前言 现在的技术博客(社区)越来越多,比如:imooc.spring4All.csdn.cnblogs或者iteye等,有很多朋友可能在这些网站上都发表过博文,当有一天我们想自己搞一个博客网站时就会发 ...
- 使用Office-Word的博客发布功能(测试博文)
本人打算在博客园开博,但平时收集和整理资料都在OneNote中,又不想在写博客时还要进行复制粘贴操作,于是就想到了Microsoft Office自带的博客发布功能.在此做了一下测试,发布了此博文. ...
- require.js 使用博客
没时间写博客,又觉得这篇很不错,或许以后能用到,只能copy与点赞: Javascript模块化编程(三):require.js的用法 作者: 阮一峰 日期: 2012年11月 7日 这个系列的第 ...
- 基于node.js的博客搭建
一个博客应当具备哪些功能? 前台展示 点击下一页,可以点击分类导航. 可以点击进入到具体博文页面 下方允许评论.显示发表时间.允许留言分页. 右侧有登录注册界面. 后台管理 管理员账号:登陆后看到页面 ...
- 一个基于Vue.js+Mongodb+Node.js的博客内容管理系统
这个项目最初其实是fork别人的项目.当初想接触下mongodb数据库,找个例子学习下,后来改着改着就面目全非了.后台和数据库重构,前端增加了登录注册功能,仅保留了博客设置页面,但是也优化了. 一.功 ...
- hexo —— 简单、快速、强大的Node.js静态博客框架
hexo是一款基于Node.js的静态博客框架.目前在GitHub上已有1375 star 和 219 fork. 特性 风一般的速度 Hexo基于Node.js,支持多进程,几百篇文章也可以秒生成. ...
- 【轮子狂魔】手把手教你用JS给博客动态增加目录 - 超级懒人版
动态显示目录的作用 不用每次写博客的时候繁琐的人工整理目录,又可以动态浮动在右下角,方便快速跳到感兴趣的位置同时也可以快速的对文章内容有一个大概的了解. 实现原理 首先根据个人喜好,我习惯了用 h1 ...
- CSDN的博客搜索功能不又给力了呵呵呵呵
不得不说,CSDN博客的搜索功能是在太弱了.而且一直都很弱,以至于我每次想在自己博客上找自己发的文章都变得那么难.做一个搜索博客内文章的功能没有那么难吧? 还是说CSDN已经放弃了博客这一块了? 我发 ...
随机推荐
- wordpress使用阿里云邮件推送服务实现发送邮件
之前用腾迅云时,配置了wordpress是可以使用邮件服务的,然而到了阿里云,却无法使用了,有人说是因为阿里云关了25端口,但腾迅好像也关了. 百度看看有没有其他方法,最终让我找到个方法,可惜不是很完 ...
- java开发面试问题
Java面试题:java的垮平台原理 为什么要跨平台使用????? 其实说白了就是个操作系统支持的指令集是不一样的.我们的程序需要再不同的操作系统上运行这些代码. 但是不要说jvm是跨平台的,而真正跨 ...
- 解决Database returned an invalid datetime value. Are time zone definitions for your database installed?
设定博客文章按照时间分层筛选出现问题 ret=Article.objects.filter(user=user).annotate(month=TruncMonth("create_time ...
- Python编程Day3—基本运算符、数据类型
一.基本运算符 1.算数运算 print(10/3) print(10//3) print(10%3) print(10**3) 2.比较运算 print(10==10) print(10!=10) ...
- 【翻译】JavaScript中5个值得被广泛使用的数组方法
原文地址:http://colintoh.com/blog/5-array-methods-that-you-should-use-today?utm_source=javascriptweekly& ...
- VueJs(7)---计算属性和侦听器
计算属性和侦听器 一. 概述 计算属性 模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的.在模板中放入太多的逻辑会让模板过重且难以维护.例如: <div id="exampl ...
- logstash收集nginx访问日志
logstash收集nginx访问日志 安装nginx #直接yum安装: [root@elk-node1 ~]# yum install nginx -y 官方文档:http://nginx.org ...
- linux overcommit flag
linux中有一个overcomit的配置,这个配置关系到进程在过多申请memory资源的时候,系统的表现(启发式允许,不检查,or 阻止) /proc/sys/vm/overcommit_memor ...
- leetcode — spiral-matrix
import java.util.Arrays; /** * Source : https://oj.leetcode.com/problems/spiral-matrix/ * * Created ...
- HBase 架构脑图
https://docs.transwarp.io/5.0/goto?file=HyperbaseManual_intro-hbase.html#intro-hbase