byr-signature

add signature for byr-forum

当前为 2016-06-09 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name byr-signature
  3. // @namespace flowmemo
  4. // @version 0.1.1
  5. // @description add signature for byr-forum
  6. // @author flowmemo
  7. // @match https://bbs.byr.cn/*
  8. // @grant GM_getValue
  9. // @grant GM_setValue
  10. // @license MIT
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15. var defaultSig = '————\n' +
  16. '示例签名:' +
  17. '微博 [url=http://weibo.com/flowmemo]@flowmemo[/url] 现在主要写JavaScript. 关注广泛, 欢迎交流.';
  18. var id; // timeout id
  19. var div;
  20. function addSignature (sig) {
  21. var signature = GM_getValue('sig', defaultSig);
  22. console.log('/post');
  23. div = document.getElementById('post_content');
  24. if(!div) return;
  25. console.dir(div);
  26. console.log('change value');
  27. div.value += '\n' + signature;
  28. return true;
  29. }
  30. function polling() {
  31. window.clearTimeout(id); // clear timeout if it exist
  32. if (window.location.href.indexOf('/post') === -1) return;
  33. function cb () {
  34. if (addSignature()) {
  35. sigPanel();
  36. return;
  37. }
  38. id = setTimeout(cb, 300);
  39. }
  40. cb();
  41. }
  42. function sigPanel() {
  43. var div = document.createElement('div');
  44. var referNode = document.getElementsByClassName('post-list-item')[2];
  45. referNode.appendChild(div);
  46.  
  47. console.log(div.outerHTML);
  48. div.outerHTML = '<br><div class="byr-signature">' +
  49. '<div class="post-m">byr-signature</div>' +
  50. '<textarea class="post-textarea"name="sig-content" placeholder="在此输入你的签名, 保存后刷新页面生效"></textarea><br>' +
  51. '<input name="saveSig" type="button" value="保存"></div>';
  52. var userSig = document.getElementsByName('sig-content')[0];
  53. userSig.value = GM_getValue('sig', defaultSig);
  54. var saveButton = document.getElementsByName('saveSig')[0];
  55. saveButton.onclick = function() {
  56. console.log(userSig.value);
  57. GM_setValue('sig', (userSig.value));
  58. };
  59. }
  60. if (window.location.href.indexOf('/post') > -1) polling();
  61. console.log('add change');
  62. window.addEventListener('hashchange', polling);
  63. })();