为微信网页版添加论坛风签名档(附源码)
· 3 min read
在微信网页版中为每条消息自动添加个性签名是一件蛮酷的事,仿佛将经典的论坛的签名档功能融入微信中。
我们可以使用油猴插件(Tampermonkey)来注入JavaScript代码,通过修改微信网页版的DOM元素和事件来实现自动添加签名的功能。
主要功能
- 修改发送按钮的事件
- 添加 Shift+Enter 快捷键支持
- 创建自定义按钮
完整代码
// ==UserScript==
// @name 微信网页版消息签名助手
// @namespace http://xieyonglin.com/
// @version 0.1
// @description 微信消息添加签名档
// @author Xie Yonglin
// @match https://wx.qq.com/
// @grant none
// ==/UserScript==
// 发送带签名的消息
function SendMsg(content) {
angular.element('pre:last').scope().editAreaCtn =
String(content + '\n ----通过 X-Phone Plus 发布');
angular.element('pre:last').scope().sendTextMessage();
}
// 获取输入框内容并发送
function SendMsgWithInput() {
var temp = document.getElementById('editArea').innerHTML;
angular.element('pre:last').scope().editAreaCtn =
String(temp + '\n ----通过 X-Phone 发布');
angular.element('pre:last').scope().sendTextMessage();
}
// 创建自定义按钮
function CreateButton(buttonText) {
var votebutton = document.createElement("input");
votebutton.type = "button";
votebutton.value = buttonText;
votebutton.name = "custom-button";
votebutton.className = "btn btn-default";
votebutton.onclick = function () {
SendMsg(this.value);
};
tool_bar.appendChild(votebutton);
}
// 主函数
(function () {
'use strict';
// 修改默认发送按钮行为
var sendButton = '<a class="btn btn_send" href="javascript:;" ">发送</a>';
document.getElementsByClassName("btn_send")[0].outerHTML = sendButton;
document.getElementsByClassName("btn_send")[0].onclick = function () {
SendMsgWithInput();
};
// 添加Shift+Enter快捷键支持
document.getElementsByClassName("content ng-isolate-scope")[0].onkeydown =
function (event) {
var e = event || window.event ||
arguments.callee.caller.arguments[0];
if (e && e.shiftKey == 1) {
SendMsgWithInput();
}
};
// 创建测试按钮
CreateButton('test');
// 创建带签名发送按钮
var toolbar = document.getElementsByClassName("toolbar")[0];
var signButton = document.createElement("input");
signButton.type = "button";
signButton.value = "带签名发送";
signButton.name = "sign-button";
signButton.className = "btn btn-default";
signButton.onclick = function () {
SendMsgWithInput();
};
toolbar.appendChild(signButton);
})();
改进脚本
通过简单的代码修改,你可以在签名中加入实时时间、当前城市、天气状况,甚至是一句每日随机格言。
这让我想起曾经在论坛里遇到的一位大哥,他坚持在每个帖子下都手写一份签名档。这种对签名的执着与热爱,让网络世界始终保持着一份温度与人情味。这种精神值得我们学习👍。