您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Like it says on the tin. This script allows the user to hide the signatures of specific users.
- // ==UserScript==
- // @name Hide Signatures for Certain Users [XenForo]
- // @namespace Makaze
- // @include *
- // @grant none
- // @version 2.1.1
- // @description Like it says on the tin. This script allows the user to hide the signatures of specific users.
- // ==/UserScript==
- var toggleSigBlockState = function() {
- var opts = (localStorage.getItem('MakazeScriptOptions')) ? JSON.parse(localStorage.getItem('MakazeScriptOptions')) : {},
- users = (opts.hasOwnProperty('xf_hidden_sigs')) ? opts.xf_hidden_sigs : [],
- userID = this.getAttribute('data-userid'),
- context,
- postAuthor,
- signature,
- isBlocked = false,
- i = 0;
- for (i = 0; i < users.length; i++) {
- if (userID === users[i]) {
- users.splice(i, 1);
- opts.xf_hidden_sigs = users;
- localStorage.setItem('MakazeScriptOptions', JSON.stringify(opts));
- isBlocked = true;
- break;
- }
- }
- if (!isBlocked) {
- users.push(userID);
- opts.xf_hidden_sigs = users;
- localStorage.setItem('MakazeScriptOptions', JSON.stringify(opts));
- }
- for (i = 0; i < document.getElementsByClassName('messageUserInfo').length; i++) {
- context = document.getElementsByClassName('messageUserInfo')[i];
- postAuthor = context.getElementsByClassName('username')[0].href.replace(/.*?members\/.*?\.(.*?)\//gi, '$1');
- signature = context.parentNode.getElementsByClassName('signature')[0];
- if (postAuthor === userID) {
- if (isBlocked) {
- signature.style.display = 'block';
- context.getElementsByClassName('blockSigContainer')[0].getElementsByTagName('a')[0].childNodes[0].nodeValue = 'Block Signature';
- } else {
- signature.style.display = 'none';
- context.getElementsByClassName('blockSigContainer')[0].getElementsByTagName('a')[0].childNodes[0].nodeValue = 'Unblock Signature';
- }
- }
- }
- };
- if (document.documentElement.id === 'XenForo') {
- if (document.getElementsByClassName('signature').length && document.getElementsByClassName('messageUserInfo').length) {
- var opts = (localStorage.getItem('MakazeScriptOptions')) ? JSON.parse(localStorage.getItem('MakazeScriptOptions')) : {},
- users = (opts.hasOwnProperty('xf_hidden_sigs')) ? opts.xf_hidden_sigs : [],
- context,
- userID,
- appendLocation,
- signature,
- sigBlockContainer,
- sigBlockLink,
- sigBlockLinkText,
- i = 0,
- j = 0;
- for (i = 0; i < document.getElementsByClassName('messageUserInfo').length; i++) {
- context = document.getElementsByClassName('messageUserInfo')[i];
- if (context.getElementsByClassName('username')[0] != null) {
- userID = context.getElementsByClassName('username')[0].href.replace(/.*?members\/.*?\.(.*?)\//gi, '$1');
- appendLocation = context.getElementsByClassName('extraUserInfo')[0];
- signature = context.parentNode.getElementsByClassName('signature')[0];
- sigBlockContainer = document.createElement('div');
- sigBlockLink = document.createElement('a');
- sigBlockLink.href = 'javascript:void(0)';
- sigBlockLink.setAttribute('data-userid', userID);
- sigBlockLink.onclick = toggleSigBlockState;
- if (users.length) {
- for (j = 0; j < users.length; j++) {
- if (userID === users[j]) {
- signature.style.display = 'none';
- sigBlockLinkText = document.createTextNode('Unlock Signature');
- } else {
- sigBlockLinkText = document.createTextNode('Block Signature');
- }
- }
- } else {
- sigBlockLinkText = document.createTextNode('Block Signature');
- }
- sigBlockContainer.className = 'blockSigContainer';
- sigBlockContainer.style.marginTop = '1em';
- sigBlockLink.appendChild(sigBlockLinkText);
- sigBlockContainer.appendChild(sigBlockLink);
- appendLocation.appendChild(sigBlockContainer);
- }
- }
- }
- }