// ==UserScript== // @name byr-signature // @namespace https://github.com/flowmemo/byr-signature // @version 0.1.4 // @description 为北邮人论坛发帖添加个性签名 // @author flowmemo // @match https://bbs.byr.cn/* // @grant GM_getValue // @grant GM_setValue // @downloadURL none // ==/UserScript== // JavaScript Standard Style: https://github.com/feross/standard ;(function () { var _DEBUG = 0 function log () { if (_DEBUG === 1) console.log.apply(console, arguments) } 'use strict' log('hello') var defaultSig = '————\n' + '示例签名:\n' + '微博 [url=http://weibo.com/flowmemo][color=#0000FF]@flowmemo[/color][/url] , 现在主要写JavaScript. 关注广泛, 欢迎交流.\n' + '\n' + '[url=https://github.com/flowmemo/byr-signature][color=#0000FF]此签名通过「北邮人签名档」脚本发送[/color][/url]' var id // timeout id function addPostSig () { log('addPostSig') var signature = GM_getValue('sig', defaultSig) var div = document.getElementById('post_content') if (!div) return div.value += '\n' + signature return true } function addQuickSig () { log('addQuickSig') var signature = GM_getValue('sig', defaultSig) var page = document.querySelector('.page-select a') if (!page) return var curPage = page.text if (!window.location.href.match(/\?p=(\d+)/)) { if (curPage !== '1') return } else { var hrefPage = window.location.href.match(/\?p=(\d+)/)[1] if (hrefPage !== curPage) return } var div = document.getElementsByName('content')[0] if (!div) return div.value += '\n' + signature log('add value') return true } function polling () { log('polling') if (window.location.href.indexOf('#!article') === -1) return window.clearTimeout(id) // clear timeout if it already exists function cb () { if (window.location.href.indexOf('/post') > -1) { if (addPostSig()) { sigPanel() return } } else if (addQuickSig()) return id = setTimeout(cb, 300) } cb() } function sigPanel () { log('sigPanel') var div = document.createElement('div') var postItems = document.getElementsByClassName('post-list-item') var referNode = postItems[postItems.length - 2] referNode.appendChild(div) div.outerHTML = '

' + '
byr-signature自定义签名
' + '
' + '
' + '

保存后刷新页面生效(注意保存你的发帖内容)

' var userSig = document.getElementsByName('sig-content')[0] userSig.value = GM_getValue('sig', defaultSig) var saveButton = document.getElementsByName('saveSig')[0] saveButton.addEventListener('click', function () { GM_setValue('sig', (userSig.value)) }) } if (window.location.href.indexOf('#!article') > -1) polling() window.addEventListener('hashchange', polling) })()