【工具】-屏蔽烦你的id插件

版主: huangchong

generic
正式会员
正式会员
帖子: 12
注册时间: 7月 22, 2022, 7:31 pm

Re: 【工具】-屏蔽烦你的id插件

帖子 generic »

取诸怀抱
正式写手
正式写手
帖子: 186
注册时间: 7月 23, 2022, 2:46 am

Re: 【工具】-屏蔽烦你的id插件

帖子 取诸怀抱 »

太方便了,眼前干净许多,赞楼主
放浪形骸
fhnan
论坛精英
论坛精英
帖子: 5573
注册时间: 7月 29, 2022, 12:50 am

Re: 【工具】-屏蔽烦你的id插件

帖子 fhnan »

有没有iPad上用的插件
买买提纪检委书记
快马加鞭
小有名气
小有名气
帖子: 32
注册时间: 7月 25, 2022, 3:23 am

Re: 【工具】-屏蔽烦你的id插件

帖子 快马加鞭 »

Nice, 大拇指
tmbb2010 写了: 9月 6, 2022, 3:52 am ##########我来修正吧,用于屏蔽主题 2022/09/06 ########

(Huangchong 编辑)https://www.tampermonkey.net/
  • tampermonkey打开dashboard
  • 点+号,新建脚本,copy&paste
已知问题:
  • 在supernova主题下无效
  • 未登录无效
如果发现bug想要俺修,请确认是最新的脚本.

代码: 全选

      // ==UserScript==
      // @name         NewMitbbs-bot-blocker
      // @namespace    http://tampermonkey.net/
      // @version      0.2
      // @description  Manages and blocks bot generated content. Shamelessly modified from chunjuan's script at https://greasyfork.org/en/scripts/29195-mitbbs-bot-blocker/code, which was inspired by Smalltalk80's original GM script, http://userscripts-mirror.org/scripts/review/78633
      // @author       Sagittarius A*
      // @match        http://newmitbbs.com/*
      // @match        https://newmitbbs.com/*
      // @grant        GM_addStyle
      // @run-at       document-idle
      // ==/UserScript==
      // debugger;
      (function() {
        'use strict';

        var storageKey = 'new.mitbbs.blocklist';
        
        function getBlocklist() {
          var blockList = localStorage.getItem(storageKey);
          if (blockList === null) {
            setBlocklist([]);
            blockList = localStorage.getItem(storageKey);
          }

          try {
            blockList = JSON.parse(blockList);
          } catch (error) {
            blockList = [];
            setBlocklist(blockList);
          }

          blockList = Array.isArray(blockList) ? blockList : [];
          return blockList;
        }

        function setBlocklist(idNameList) {
          // remove duplicate items
          // todo: babel output for this one doesn't really work, have to revert back to old fashion way
          // idNameList = [...new Set(idNameList)]
          var uniqueidNameList = idNameList.filter(function (elem, index, self) {
            return index === self.indexOf(elem);
          });
          uniqueidNameList = uniqueidNameList.sort(function (a, b) {
            // defer from localeCompare for better browser support
            if (a.toLowerCase() < b.toLowerCase()) return -1;
            if (a.toLowerCase() > b.toLowerCase()) return 1;
            return 0;
          });
          localStorage.setItem(storageKey, JSON.stringify(uniqueidNameList));
          document.getElementById('blockListInput').value = uniqueidNameList;
        }

        function getBlockFlag() {
          var blockFlag = localStorage.getItem(storageKey + '.flag');
          if (blockFlag === null) {
            setBlockFlag(0);
            blockFlag = localStorage.getItem(storageKey + '.flag');
          }
          //  js, just being js
          return parseInt(blockFlag);
        }

        function setBlockFlag(flag) {
          localStorage.setItem(storageKey + '.flag', flag);
        }

        function changePostVisibility() {
          var blockList = getBlocklist();
          var flag = getBlockFlag();
          // if list is not empty
          var counter = 0;
          if (blockList) {
            var taolunDiv = document.querySelector('div.forumbg:not(.announcement)');
            // yeah yeah yeah magic number, whatever
            // this will miss the first one though, nice try langfang coder
            var userIDtdNodeList = taolunDiv.querySelectorAll('li.row');
            userIDtdNodeList.forEach(function (td) {
              // damn, now i miss jquery/zepto
              var id = td.querySelector('div.responsive-show').querySelector('span.username').textContent;
              //  reset all reply to visible. This is a hack-ish method to fix content not being displayed after userID has been removed from blocklist.
              //  TODO: maybe in the near future, we should keep a local copy of blocklist so that we can compare the changes and show/hide content intelligently, maybe
              td.style.display = '';
              //  yeah, nested if statements
              if (blockList.indexOf(id) > -1) {
                if (flag) {
                  td.style.display = 'none';
                  counter += 1;
                } else {
                  td.style.display = '';
                }
              }
            });
            counter = flag ? counter : 0;
            document.getElementById('blockCounter').innerHTML = counter;
          }
        }

        function changeReplyVisibility() {
          //  now we on individual post page
          var blockList = getBlocklist();
          var flag = getBlockFlag();
          var counter = 0;
          var sideBarBG = document.querySelectorAll('div.post.has-profile');
          sideBarBG.forEach(function (reply) {
            // var post = reply.parentElement.parentElement.parentElement.parentElement.parentElement;
            var userID = reply.querySelector('span.username').textContent;
            //  another magic number!
            var userMenu = reply.querySelector('strong');
            var hasButton = userMenu.querySelector('span.button') !== null;
            if (!hasButton) {
              var blockButton = document.createElement('span');
              blockButton.setAttribute('class', 'button');
              blockButton.innerHTML = '&nbsp;&nbsp;<button class="addToBlock" title="' + userID + '">屏蔽!</button>';
              userMenu.appendChild(blockButton); 
            }
            if(!flag) userMenu.querySelector('span.button').style.display = 'none';
            else userMenu.querySelector('span.button').style.display = '';
            //  reset all reply to visible. This is a hack-ish method to fix content not being displayed after userID has been removed from blocklist.
            //  TODO: maybe in the near future, we should keep a local copy of blocklist so that we can compare the changes and show/hide content intelligently, maybe
            reply.style.display = '';
            if (blockList.indexOf(userID) > -1) {
              if (flag) {
                reply.style.display = 'none';
                counter += 1;
              } else {
                reply.style.display = '';
              }
            }
            counter = flag ? counter : 0;
            document.getElementById('blockCounter').innerHTML = counter;
          });

          var allBlockButton = document.querySelectorAll('.addToBlock');
          Array.from(allBlockButton).forEach(function (button) {
            var userID = button.getAttribute('title');
            button.addEventListener('click', function () {
              var yesBlock = confirm('Block ' + userID + ' ?');
              if (yesBlock) {
                blockList.push(userID);
                setBlocklist(blockList);
                document.getElementById('blockListInput').value = getBlocklist().join();
                // toggleBlockedContent();
                // copy & paste from above code to refresh the page with newly added id
                sideBarBG.forEach(function (reply) {
                  // var post = reply.parentElement.parentElement.parentElement.parentElement.parentElement;
                  var userID = reply.querySelector('span.username').textContent;
                  //  another magic number!
                  var userMenu = reply.querySelector('strong');
                  var hasButton = userMenu.querySelector('span.button') !== null;
                  if (!hasButton) {
                    var blockButton = document.createElement('span');
                    blockButton.setAttribute('class', 'button');
                    blockButton.innerHTML = '&nbsp;&nbsp;<button class="addToBlock" title="' + userID + '">屏蔽!</button>';
                    userMenu.appendChild(blockButton); 
                  }
                  if(!flag) userMenu.querySelector('span.button').style.display = 'none';
                  else userMenu.querySelector('span.button').style.display = '';
                  //  reset all reply to visible. This is a hack-ish method to fix content not being displayed after userID has been removed from blocklist.
                  //  TODO: maybe in the near future, we should keep a local copy of blocklist so that we can compare the changes and show/hide content intelligently, maybe
                  reply.style.display = '';
                  if (blockList.indexOf(userID) > -1) {
                    if (flag) {
                      reply.style.display = 'none';
                      counter += 1;
                    } else {
                      reply.style.display = '';
                    }
                  }
                  counter = flag ? counter : 0;
                  document.getElementById('blockCounter').innerHTML = counter;
                });
              }
            });
          });
        }

        function toggleBlockedContent() {
          document.getElementById('isBlocking').checked ? setBlockFlag(1) : setBlockFlag(0);
          var pageType = locationGuesser();
          switch (pageType) {
            case 1:
              changeReplyVisibility();
              break;
            case -1:
              changePostVisibility();
              break;
          }
        }

        function locationGuesser() {
          var pageType = void 0;
          var url = window.location.href;
          if (url.indexOf('viewtopic') > -1) {
            pageType = 1;
          } else if (url.indexOf('viewforum') > -1) {
            pageType = -1;
          } else {
            pageType = 0;
          }

          return pageType;
        }

        // callback for when clicking 黑名单 button
        function changeBlockListVisibility() {
          var notVisible = document.getElementById('blockListPop').style.display === 'none';
          if (notVisible) {
            // show block list pop up
            document.getElementById('blockListInput').value = getBlocklist().join();
            document.getElementById('blockListPop').style.display = '';
          } else {
            // close block list pop up
            document.getElementById('blockListPop').style.display = 'none';
            // update blocklist when closing the pop up
            updateBlockList();
          }
        }

        function updateBlockList() {
          var newBlockList = document.getElementById('blockListInput').value;
          //  remove line break, space, trailing comma
          newBlockList = newBlockList.replace(/(\r\n|\n|\r)/gm, '').replace(/\s/g, '').replace(/,+$/, '');
          newBlockList = newBlockList.split(',');
          setBlocklist(newBlockList);

          // re-filter existing content
          toggleBlockedContent();
        }

        function hideBlockList() {
          document.getElementById('blockListPop').style.display = 'none';
        }

        function prepPage() {
          var flag = getBlockFlag();
          getBlocklist();
          if (flag) {
            document.getElementById('isBlocking').checked = true;
            toggleBlockedContent();
          }
        }

        function pageOnLoad() {
          //  build blocker control gui
          var blockerDiv = document.createElement('div');
          blockerDiv.innerHTML = '<button id="showBlocklist" class="button">黑名单</button><input type="checkbox" id="isBlocking" /><span id="blockCounter" title="Currently Blocked"></span>';
          blockerDiv.style.cssText = 'position:fixed; bottom:2em; right:0.5em; width:9em; padding:0.5em; border-radius:0.25em; background-color:#D7EAF9; box-shadow:2px 2px 4px 0px rgba(0,0,0,0.5); text-align:center; cursor:pointer;';
          document.body.appendChild(blockerDiv);

          document.getElementById('showBlocklist').addEventListener('click', changeBlockListVisibility);
          document.getElementById('blockCounter').style.cssText = 'padding:0 4px; font-weight:bold';
          document.getElementById('isBlocking').addEventListener('change', toggleBlockedContent);

          //  block list
          var blockListDiv = document.createElement('div');
          blockListDiv.setAttribute('id', 'blockListPop');
          blockListDiv.innerHTML = '<span>修改ID,用逗号分隔,大小写敏感!</span>' + '<br/>' + '<textarea rows="10" cols="40" id="blockListInput" style="background-color:orange;color:black;font-size:10pt;"></textarea>' + '<br/>' + '<button id="updateBlockList">Update</button><span style="width:2em"></span><button id="closePop">Close</button>';
          blockListDiv.style.cssText = 'position:fixed; bottom:5.3em; right:0.5em; padding:0.5em; border-radius:0.25em; background-color:#D7EAF9; box-shadow:2px 2px 4px 0px rgba(0,0,0,0.5); text-align:center; display:none';
          document.body.appendChild(blockListDiv);
          document.getElementById('updateBlockList').addEventListener('click', updateBlockList);
          document.getElementById('closePop').addEventListener('click', hideBlockList);

          prepPage();
        }

        function ready(fn) {
          if (document.readyState !== 'loading') {
            fn();
          } else {
            document.addEventListener('DOMContentLoaded', fn);
          }
        }

        ready(pageOnLoad);
        })();
fhnan
论坛精英
论坛精英
帖子: 5573
注册时间: 7月 29, 2022, 12:50 am

Re: 【工具】-屏蔽烦你的id插件

帖子 fhnan »

有iPad上能用的插件吗
买买提纪检委书记
头像
(ヅ)
著名点评
著名点评
帖子: 4499
注册时间: 8月 21, 2022, 2:20 pm

Re: 【工具】-屏蔽烦你的id插件

帖子 (ヅ) »

fhnan 写了: 10月 22, 2022, 11:22 pm 有iPad上能用的插件吗
你试试呗,不是可以装tampermonkey吗

https://apps.apple.com/us/app/tampermon ... 0089?mt=12
图片
fhnan
论坛精英
论坛精英
帖子: 5573
注册时间: 7月 29, 2022, 12:50 am

Re: 【工具】-屏蔽烦你的id插件

帖子 fhnan »

(ヅ) 写了: 10月 23, 2022, 4:06 pm 你试试呗,不是可以装tampermonkey吗

https://apps.apple.com/us/app/tampermon ... 0089?mt=12
iPad上搞不定
买买提纪检委书记
zhangxl
正式写手
正式写手
帖子: 173
注册时间: 7月 24, 2022, 3:37 pm

Re: 【工具】-屏蔽烦你的id插件

帖子 zhangxl »

这个是干嘛的?和老站的屏蔽自己不想看的id的帖子有关系吗?
supermassive 写了: 8月 9, 2022, 2:11 pm (Huangchong 编辑)https://www.tampermonkey.net/

从春卷老师的脚本改的,使用方法:
  • tampermonkey打开dashboard
  • 点+号,新建脚本,copy&paste
已知问题:
  • 在proflat主题下无效
  • 未登录无效
如果发现bug想要俺修,请确认是最新的脚本.

update:
10/17/22, 修复版面上失效的问题

代码: 全选

            // ==UserScript==
      // @name         NewMitbbs-bot-blocker
      // @namespace    http://tampermonkey.net/
      // @version      0.1
      // @description  Manages and blocks bot generated content. Shamelessly modified from chunjuan's script at https://greasyfork.org/en/scripts/29195-mitbbs-bot-blocker/code, which was inspired by Smalltalk80's original GM script, http://userscripts-mirror.org/scripts/review/78633
      // @author       Sagittarius A*
      // @match        http://newmitbbs.com/*
      // @match        https://newmitbbs.com/*
      // @grant        GM_addStyle
      // @run-at       document-idle
      // ==/UserScript==
      // debugger;
      (function() {
        'use strict';

        var storageKey = 'new.mitbbs.blocklist';

        function getBlocklist() {
          var blockList = localStorage.getItem(storageKey);
          if (blockList === null) {
            setBlocklist([]);
            blockList = localStorage.getItem(storageKey);
          }

          try {
            blockList = JSON.parse(blockList);
          } catch (error) {
            blockList = [];
            setBlocklist(blockList);
          }

          blockList = Array.isArray(blockList) ? blockList : [];
          return blockList;
        }

        function setBlocklist(idNameList) {
          // remove duplicate items
          // todo: babel output for this one doesn't really work, have to revert back to old fashion way
          // idNameList = [...new Set(idNameList)]
          var uniqueidNameList = idNameList.filter(function (elem, index, self) {
            return index === self.indexOf(elem);
          });
          uniqueidNameList = uniqueidNameList.sort(function (a, b) {
            // defer from localeCompare for better browser support
            if (a.toLowerCase() < b.toLowerCase()) return -1;
            if (a.toLowerCase() > b.toLowerCase()) return 1;
            return 0;
          });
          localStorage.setItem(storageKey, JSON.stringify(uniqueidNameList));
          document.getElementById('blockListInput').value = uniqueidNameList;
        }

        function getBlockFlag() {
          var blockFlag = localStorage.getItem(storageKey + '.flag');
          if (blockFlag === null) {
            setBlockFlag(0);
            blockFlag = localStorage.getItem(storageKey + '.flag');
          }
          //  js, just being js
          return parseInt(blockFlag);
        }

        function setBlockFlag(flag) {
          localStorage.setItem(storageKey + '.flag', flag);
        }

        function changePostVisibility() {
          var blockList = getBlocklist();
          var flag = getBlockFlag();
          // if list is not empty
          var counter = 0;
          if (blockList) {
            var taolunDiv = document.querySelector('div.forumbg:not(.announcement)');
            if(taolunDiv == null)
              taolunDiv = document.querySelector('div.sn-cat-header:not(.announcement)');
            // yeah yeah yeah magic number, whatever
            // this will miss the first one though, nice try langfang coder
            var userIDtdNodeList = taolunDiv.querySelectorAll('li.row');
            console.log(userIDtdNodeList.length);
            userIDtdNodeList.forEach(function (td) {
              // damn, now i miss jquery/zepto
              var id;
              if(td.querySelector('div.topic-poster') != null){
                id = td.querySelector('div.topic-poster').querySelector('span.username').textContent;
                console.log("debug 3");
              }else if(td.querySelector('div.responsive-show:not([style*="display:none"]') != null){
                id = td.querySelector('div.responsive-show:not([style*="display:none"]').querySelector('span.username').textContent;
                console.log("debug 2");
              }else{
                console.log("couldn't find td");
              }
                //  reset all reply to visible. This is a hack-ish method to fix content not being displayed after userID has been removed from blocklist.
              //  TODO: maybe in the near future, we should keep a local copy of blocklist so that we can compare the changes and show/hide content intelligently, maybe
              td.style.display = '';
              //  yeah, nested if statements
              console.log("op's id is " + id);
              if (blockList.indexOf(id) > -1) {
                if (flag) {
                  td.style.display = 'none';
                  console.log(id + "'s post has been set as invisible");
                  counter += 1;
                } else {
                  td.style.display = '';
                }
              }
            });
            counter = flag ? counter : 0;
            document.getElementById('blockCounter').innerHTML = counter;
          }
        }

        function changeReplyVisibility() {
          //  now we on individual post page
          var blockList = getBlocklist();
          var flag = getBlockFlag();
          var counter = 0;
          var sideBarBG = document.querySelectorAll('div.post.has-profile');
          sideBarBG.forEach(function (reply) {
            // var post = reply.parentElement.parentElement.parentElement.parentElement.parentElement;
            var userID = reply.querySelector('span.username').textContent;
            //  another magic number!
            var userMenu = reply.querySelector('strong');
            var hasButton = userMenu.querySelector('span.button') !== null;
            if (!hasButton) {
              var blockButton = document.createElement('span');
              blockButton.setAttribute('class', 'button');
              blockButton.innerHTML = '&nbsp;&nbsp;<button class="addToBlock" title="' + userID + '">屏蔽!</button>';
              userMenu.appendChild(blockButton);
            }
            if(!flag) userMenu.querySelector('span.button').style.display = 'none';
            else userMenu.querySelector('span.button').style.display = '';
            //  reset all reply to visible. This is a hack-ish method to fix content not being displayed after userID has been removed from blocklist.
            //  TODO: maybe in the near future, we should keep a local copy of blocklist so that we can compare the changes and show/hide content intelligently, maybe
            reply.style.display = '';
            if (blockList.indexOf(userID) > -1) {
              if (flag) {
                reply.style.display = 'none';
                counter += 1;
              } else {
                reply.style.display = '';
              }
            }
            counter = flag ? counter : 0;
            document.getElementById('blockCounter').innerHTML = counter;
          });

          var allBlockButton = document.querySelectorAll('.addToBlock');
          Array.from(allBlockButton).forEach(function (button) {
            var userID = button.getAttribute('title');
            button.addEventListener('click', function () {
              var yesBlock = confirm('Block ' + userID + ' ?');
              if (yesBlock) {
                blockList.push(userID);
                setBlocklist(blockList);
                document.getElementById('blockListInput').value = getBlocklist().join();
                // toggleBlockedContent();
                // copy & paste from above code to refresh the page with newly added id
                sideBarBG.forEach(function (reply) {
                  // var post = reply.parentElement.parentElement.parentElement.parentElement.parentElement;
                  var userID = reply.querySelector('span.username').textContent;
                  //  another magic number!
                  var userMenu = reply.querySelector('strong');
                  var hasButton = userMenu.querySelector('span.button') !== null;
                  if (!hasButton) {
                    var blockButton = document.createElement('span');
                    blockButton.setAttribute('class', 'button');
                    blockButton.innerHTML = '&nbsp;&nbsp;<button class="addToBlock" title="' + userID + '">屏蔽!</button>';
                    userMenu.appendChild(blockButton);
                  }
                  if(!flag) userMenu.querySelector('span.button').style.display = 'none';
                  else userMenu.querySelector('span.button').style.display = '';
                  //  reset all reply to visible. This is a hack-ish method to fix content not being displayed after userID has been removed from blocklist.
                  //  TODO: maybe in the near future, we should keep a local copy of blocklist so that we can compare the changes and show/hide content intelligently, maybe
                  reply.style.display = '';
                  if (blockList.indexOf(userID) > -1) {
                    if (flag) {
                      reply.style.display = 'none';
                      counter += 1;
                    } else {
                      reply.style.display = '';
                    }
                  }
                  counter = flag ? counter : 0;
                  document.getElementById('blockCounter').innerHTML = counter;
                });
              }
            });
          });
        }

        function toggleBlockedContent() {
          document.getElementById('isBlocking').checked ? setBlockFlag(1) : setBlockFlag(0);
          var pageType = locationGuesser();
          switch (pageType) {
            case 1:
              changeReplyVisibility();
              break;
            case -1:
              changePostVisibility();
              break;
          }
        }

        function locationGuesser() {
          var pageType = void 0;
          var url = window.location.href;
          if (url.indexOf('viewtopic') > -1) {
            pageType = 1;
          } else if (url.indexOf('viewforum') > -1) {
            pageType = -1;
          } else {
            pageType = 0;
          }

          return pageType;
        }

        // callback for when clicking 黑名单 button
        function changeBlockListVisibility() {
          var notVisible = document.getElementById('blockListPop').style.display === 'none';
          if (notVisible) {
            // show block list pop up
            document.getElementById('blockListInput').value = getBlocklist().join();
            document.getElementById('blockListPop').style.display = '';
          } else {
            // close block list pop up
            document.getElementById('blockListPop').style.display = 'none';
            // update blocklist when closing the pop up
            updateBlockList();
          }
        }

        function updateBlockList() {
          var newBlockList = document.getElementById('blockListInput').value;
          //  remove line break, space, trailing comma
          newBlockList = newBlockList.replace(/(\r\n|\n|\r)/gm, '').replace(/\s/g, '').replace(/,+$/, '');
          newBlockList = newBlockList.split(',');
          setBlocklist(newBlockList);

          // re-filter existing content
          toggleBlockedContent();
        }

        function hideBlockList() {
          document.getElementById('blockListPop').style.display = 'none';
        }

        function prepPage() {
          var flag = getBlockFlag();
          getBlocklist();
          if (flag) {
            document.getElementById('isBlocking').checked = true;
            toggleBlockedContent();
          }
        }

        function pageOnLoad() {
          //  build blocker control gui
          var blockerDiv = document.createElement('div');
          blockerDiv.innerHTML = '<button id="showBlocklist" class="button">黑名单</button><input type="checkbox" id="isBlocking" /><span id="blockCounter" title="Currently Blocked"></span>';
          blockerDiv.style.cssText = 'position:fixed; bottom:2em; right:0.5em; width:9em; padding:0.5em; border-radius:0.25em; background-color:#D7EAF9; box-shadow:2px 2px 4px 0px rgba(0,0,0,0.5); text-align:center; cursor:pointer;';
          document.body.appendChild(blockerDiv);

          document.getElementById('showBlocklist').addEventListener('click', changeBlockListVisibility);
          document.getElementById('blockCounter').style.cssText = 'padding:0 4px; font-weight:bold';
          document.getElementById('isBlocking').addEventListener('change', toggleBlockedContent);

          //  block list
          var blockListDiv = document.createElement('div');
          blockListDiv.setAttribute('id', 'blockListPop');
          blockListDiv.innerHTML = '<span>修改ID,用逗号分隔,大小写敏感!</span>' + '<br/>' + '<textarea rows="10" cols="40" id="blockListInput" style="background-color:orange;color:black;font-size:10pt;"></textarea>' + '<br/>' + '<button id="updateBlockList">Update</button><span style="width:2em"></span><button id="closePop">Close</button>';
          blockListDiv.style.cssText = 'position:fixed; bottom:5.3em; right:0.5em; padding:0.5em; border-radius:0.25em; background-color:#D7EAF9; box-shadow:2px 2px 4px 0px rgba(0,0,0,0.5); text-align:center; display:none';
          document.body.appendChild(blockListDiv);
          document.getElementById('updateBlockList').addEventListener('click', updateBlockList);
          document.getElementById('closePop').addEventListener('click', hideBlockList);

          prepPage();
        }

        function ready(fn) {
          if (document.readyState !== 'loading') {
            fn();
          } else {
            document.addEventListener('DOMContentLoaded', fn);
          }
        }

        ready(pageOnLoad);
        })();
Zephyrca
论坛精英
论坛精英
Zephyrca 的博客
帖子: 6373
注册时间: 8月 12, 2022, 10:10 pm
昵称(选填): Zephyrca

Re: 【工具】-屏蔽烦你的id插件

帖子 Zephyrca »

我觉得设置黑名单的功能已经很好了
保守派们欢迎来美国时政版:
viewforum.php?f=71
支持拥枪朋友们欢迎去枪械射击版:
viewforum.php?f=72
喜欢篮球的朋友欢迎去体育博彩版:
viewforum.php?f=30
fhnan
论坛精英
论坛精英
帖子: 5573
注册时间: 7月 29, 2022, 12:50 am

Re: 【工具】-屏蔽烦你的id插件

帖子 fhnan »

Zephyrca 写了: 3月 24, 2023, 4:46 pm 我觉得设置黑名单的功能已经很好了
你是说网站自带的黑名单?
但这个黑名单不能屏蔽帖子
买买提纪检委书记
Zephyrca
论坛精英
论坛精英
Zephyrca 的博客
帖子: 6373
注册时间: 8月 12, 2022, 10:10 pm
昵称(选填): Zephyrca

Re: 【工具】-屏蔽烦你的id插件

帖子 Zephyrca »

只屏蔽回复的帖子已经够了
fhnan 写了: 3月 24, 2023, 5:03 pm 你是说网站自带的黑名单?
但这个黑名单不能屏蔽帖子
保守派们欢迎来美国时政版:
viewforum.php?f=71
支持拥枪朋友们欢迎去枪械射击版:
viewforum.php?f=72
喜欢篮球的朋友欢迎去体育博彩版:
viewforum.php?f=30
头像
subsub1
论坛点评
论坛点评
subsub1 的博客
帖子: 2715
注册时间: 7月 22, 2022, 12:48 am
昵称(选填): 减减

Re: 【工具】-屏蔽烦你的id插件

帖子 subsub1 »

感谢楼主
老将
★☆✭✰✫克星✫✰✭☆★
敬请欣赏《老将泪》
► 显示剧情透露
头像
(ツ)
知名作家
知名作家
帖子: 1084
注册时间: 6月 2, 2023, 12:38 pm
昵称(选填): 污坛忍者

Re: 【工具】-屏蔽烦你的id插件

帖子 (ツ) »

fhnan 写了: 11月 10, 2022, 8:06 pm iPad上搞不定
装firefox,在上面装tampermonkey,我试了几天完全没毛病
sunnycoast
著名点评
著名点评
帖子: 4878
注册时间: 8月 30, 2022, 2:41 pm
昵称(选填): 轮逼鉴定专家

Re: 【工具】-屏蔽烦你的id插件

帖子 sunnycoast »

Larry Zhang 这个轮逼 屏蔽不了啊 好像空格里有隐藏字符。 每次屏蔽了, 下次那垃圾又出来了, 大家有什么好建议啊
头像
(ツ)
知名作家
知名作家
帖子: 1084
注册时间: 6月 2, 2023, 12:38 pm
昵称(选填): 污坛忍者

Re: 【工具】-屏蔽烦你的id插件

帖子 (ツ) »

sunnycoast 写了: 7月 9, 2023, 5:10 am Larry Zhang 这个轮逼 屏蔽不了啊 好像空格里有隐藏字符。 每次屏蔽了, 下次那垃圾又出来了, 大家有什么好建议啊
你是用按钮添加还是收工加的?我用按钮加进去使用正常
sunnycoast
著名点评
著名点评
帖子: 4878
注册时间: 8月 30, 2022, 2:41 pm
昵称(选填): 轮逼鉴定专家

Re: 【工具】-屏蔽烦你的id插件

帖子 sunnycoast »

(ツ) 写了: 7月 9, 2023, 11:05 am 你是用按钮添加还是收工加的?我用按钮加进去使用正常
我用按钮的啊,加了那傻逼屏蔽一会,然后那个垃圾又出来了
头像
(ツ)
知名作家
知名作家
帖子: 1084
注册时间: 6月 2, 2023, 12:38 pm
昵称(选填): 污坛忍者

Re: 【工具】-屏蔽烦你的id插件

帖子 (ツ) »

sunnycoast 写了: 7月 9, 2023, 11:24 am 我用按钮的啊,加了那傻逼屏蔽一会,然后那个垃圾又出来了
你可以看看那个名单框里面有没有。如果多开了窗口,会保存最后一次按"黑名单“按钮时,保存的所在页面名单框里面状态

举个例子,如果你开了A, B两个tab,在tab A里面通过黑名单功能添加了xxx, 但是没有按钮关闭黑名单框;然后去tab B添加了yyy,并且通过按钮关闭对话框保存了黑名单;又回到tab A通过按钮保存了对话框保存了黑名单。这样实际上会丢失yyy

update: 似乎是有问题,我看看
头像
(ツ)
知名作家
知名作家
帖子: 1084
注册时间: 6月 2, 2023, 12:38 pm
昵称(选填): 污坛忍者

Re: 【工具】-屏蔽烦你的id插件

帖子 (ツ) »

sunnycoast 写了: 7月 9, 2023, 11:24 am 我用按钮的啊,加了那傻逼屏蔽一会,然后那个垃圾又出来了
我知道问题在哪里了
头像
supermassive楼主
职业作家
职业作家
帖子: 591
注册时间: 7月 31, 2022, 4:58 pm
昵称(选填): 泥橙

Re: 【工具】-屏蔽烦你的id插件

帖子 supermassive楼主 »

sunnycoast 写了: 7月 9, 2023, 11:24 am 我用按钮的啊,加了那傻逼屏蔽一会,然后那个垃圾又出来了
谢谢提醒,改了code你可以试试
雅利安正牌婆罗门大厨
sunnycoast
著名点评
著名点评
帖子: 4878
注册时间: 8月 30, 2022, 2:41 pm
昵称(选填): 轮逼鉴定专家

Re: 【工具】-屏蔽烦你的id插件

帖子 sunnycoast »

supermassive 写了: 7月 9, 2023, 12:26 pm 谢谢提醒,改了code你可以试试
谢谢, 我试试
回复

回到 “肚皮舞运动(Joke)”