返回首頁 

Greasy Fork is available in English.

B站评论区开盒

B站评论区直接展示 ip 属地


Installer dette script?
// ==UserScript==// @name         B站评论区开盒// @namespace    mscststs// @version      1.02// @description  B站评论区直接展示 ip 属地// @author       mscststs// @match        *://*.bilibili.com/*// @exclude      *://member.bilibili.com*// @icon         https://www.google.com/s2/favicons?sz=64&domain=bilibili.com// @require https://greasyfork.org/scripts/38220-mscststs-tools/code/MSCSTSTS-TOOLS.js?version=713767// @run-at       document-start// @license      ISC// @grant        none// ==/UserScript==var utils = {uncurryThis: function uncurryThis(f) {return function () {return f.call.apply(f, arguments);};},curryThis: function curryThis(f) {return function () {var a = Array.prototype.slice.call(arguments);a.unshift(this);return f.apply(null, a);};},bindFn: function bindFn(fn, context) {var _args = Array.prototype.slice.call(arguments, 2);return function () {return fn.apply(context, _args.concat(Array.prototype.slice.call(arguments)));};},extend: function extend(child, parent) {for (var key in parent) {if (parent.hasOwnProperty(key)) child[key] = parent[key];}function ctor() {}ctor.prototype = parent.prototype;child.prototype = new ctor();child.prototype.constructor = child;child.__super__ = parent.prototype;return child;},mixin: function mixin(dest) {var sources = Array.prototype.slice.call(arguments, 1);for (var i = 0; i < sources.length; i++) {var src = sources[i];for (var key in src) {if (!dest[key]) {dest[key] = src[key];}}}},distinctArray: function distinctArray(arr) {var newArray = [],dict = {},i = 0,item;for (; i < arr.length; i++) {item = arr[i];var key = item + ':' + _typeof(item);if (!dict[key]) {newArray.push(item);dict[key] = true;}}return newArray;},/** 访问终端信息判断*/browser: {version: function () {var u = navigator.userAgent,app = navigator.appVersion;return {//移动终端浏览器版本信息trident: /Trident/i.test(u),//IE内核presto: /Presto/i.test(u),//opera内核webKit: /AppleWebKit/i.test(u),//苹果、谷歌内核gecko: /Gecko/i.test(u) && !/KHTML/i.test(u),//火狐内核mobile: /AppleWebKit.*Mobile.*/i.test(u),//是否为移动终端ios: /\(i[^;]+;( U;)? CPU.+Mac OS X/i.test(u),//ios终端android: /Android/i.test(u) || /Linux/i.test(u),//android终端或者uc浏览器windowsphone: /Windows Phone/i.test(u),//Windows PhoneiPhone: /iPhone/i.test(u),//是否为iPhone或者QQHD浏览器iPad: /iPad/i.test(u),//是否iPadMicroMessenger: /MicroMessenger/i.test(u),//是否为微信webApp: !/Safari/i.test(u),//是否web应该程序,没有头部与底部edge: /edge/i.test(u),weibo: /Weibo/i.test(u),uc: /UCBrowser/i.test(u),qq: /MQQBrowser/i.test(u),baidu: /Baidu/i.test(u),comicApp: /BiliComic|ComicWebView/i.test(u) //是否在漫画的app,或者漫画自己封装的webview};}(),language: (navigator.browserLanguage || navigator.language).toLowerCase(),lteIE: function lteIE(ver) {return $.browser.msie && parseInt($.browser.version) <= ver;}},cookie: {get: function get(cookieName) {var theCookie = "" + document.cookie;var ind = theCookie.indexOf(cookieName + "=");if (ind == -1 || cookieName == "") return "";var ind1 = theCookie.indexOf(';', ind);if (ind1 == -1) ind1 = theCookie.length;return unescape(theCookie.substring(ind + cookieName.length + 1, ind1));},set: function set(name, value, days) {days = days !== undefined ? days : 365;var exp = new Date();exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000);document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + "; path=/; domain=.bilibili.com";},'delete': function _delete(name) {this.set(name, '', -1);}},readFromLocal: function readFromLocal(key) {if (this.localStorage._support) {return localStorage.getItem(key);} else {return this.cookie.get(key);}},saveToLocal: function saveToLocal(key, val, days) {if (this.localStorage._support) {return localStorage.setItem(key, val);} else {return this.cookie.set(key, val, days);}},localStorage: {_support: window.localStorage && typeof (window.localStorage) == 'object' ? true : false,getItem: function getItem(key) {if (this._support) {return window.localStorage.getItem(key);} else {return null;}},setItem: function setItem(key, value) {if (this._support) {window.localStorage.setItem(key, value);}},removeItem: function removeItem(key) {if (this.getItem(key)) {window.localStorage.removeItem(key);}}},unhtml: function unhtml(str, reg) {return str ? str.replace(reg || /[&<">'](?:(amp|lt|quot|gt|#39|nbsp|#\d+);)?/g, function (a, b) {if (b) {return a;} else {return {'<': '&lt;','&': '&amp;','"': '&quot;','>': '&gt;',"'": '&apos;'}[a];}}) : '';},html: function html(str) {return str ? str.replace(/&((g|l|quo)t|amp|#39|nbsp);/g, function (m) {return {'&lt;': '<','&amp;': '&','&quot;': '"','&gt;': '>','&#39;': "'",'&nbsp;': ' '}[m];}) : '';},hashManage: {prependHash: '!',_change: function _change(key, value) {var hash = location.hash,hashArray,hashMap = {},hashString = '',index = 0;if (hash) {hash = hash.substring(1);if (this.prependHash) {hash = hash.replace(new RegExp('^' + this.prependHash.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")), '');}}hashArray = hash.split('&');for (var i = 0; i < hashArray.length; i++) {var _k = hashArray[i].split('=')[0],_v = hashArray[i].split('=')[1];if (_k) {hashMap[_k] = decodeURIComponent(_v);}}if (_typeof(key) == 'object') {for (var j in key) {var _val = key[j];if (_val) {hashMap[j] = encodeURIComponent(_val);} else if (_val === false) {delete hashMap[j];}}} else {if (value) {hashMap[key] = encodeURIComponent(value);} else if (value === false) {delete hashMap[key];} else if (typeof key == 'undefined') {return hashMap;} else {return hashMap[key] || null;}}for (var k in hashMap) {if (index != 0) {hashString += '&';} else {hashString += this.prependHash;}hashString += k + '=' + hashMap[k];index++;}location.hash = hashString;return hashMap;},get: function get(key) {return this._change(key, null);},set: function set(key, value) {return this._change(key, value);},clear: function clear() {location.hash = '';}},getColor16: function getColor16(rgb) {function _to16(d) {var color = parseInt(d).toString(16);return color.length == 1 ? "0" + color : color;}function _parse(array) {var value = "#";for (var i = 0; i < 3; i++) {value += _to16(array[i]);}return value;}var r###lt = "";var rgbArray = [];if (rgb.match(/\((.*)\)/) != null) {rgbArray = rgb.match(/\((.*)\)/)[1].split(",");r###lt = _parse(rgbArray);} else if (rgb.match(/,+/g) != null) {rgbArray = rgb.split(",");r###lt = _parse(rgbArray);} else {r###lt = _to16(rgb);}return r###lt;},serializeParam: function serializeParam(json) {var strArr = [];for (var i in json) {if (!(_typeof(json[i]).toLowerCase() == "function" || _typeof(json[i]).toLowerCase() == "object")) {strArr.push(encodeURIComponent(i) + "=" + encodeURIComponent(json[i]));} else if ($.isArray(json[i])) {//支持传数组内容for (var j = 0; j < json[i].length; j++) {strArr.push(encodeURIComponent(i) + "[]=" + encodeURIComponent(json[i][j]));}}}return strArr.join("&");},query2json: function query2json(query) {if ($.isPlainObject(query)) {return query;}if (query === undefined) {return {};}var q = query.split("&"),j = {};for (var i = 0; i < q.length; i++) {var arr = q[i].split('=');j[arr[0]] = arr[1];}return j;},hash2json: function hash2json() {if (window.location.href.split('#').length > 1) {return this.query2json(window.location.href.split('#')[1].split('?')[0].replace(/#/, ""));} else {return {};}},query: {get: function get(key) {var queryJson = utils.query2json(this._getQuery());if (key) {return queryJson[key];} else {return queryJson;}},set: function set(key, value) {var queryJson = utils.query2json(this._getQuery());var hashJson = utils.hash2json();if (_typeof(key) == 'object') {for (var k in key) {this._set(queryJson, k, key[k]);}} else {this._set(queryJson, key, value);}return utils.makeUrl('', queryJson, hashJson);},_set: function _set(json, key, value) {if (value === null) {delete json[key];} else {json[key] = value;}return json;},_getQuery: function _getQuery() {if (window.location.search !== undefined) {return window.location.search.substring(1);} else {return window.location.href.split('?')[1] ? window.location.href.split('?')[1].split('#')[0] : '';}}},makeUrl: function makeUrl(url, queryJson, hashJson) {var query = this.serializeParam(queryJson),hash = this.serializeParam(hashJson),_url;if (query) {_url = (url || location.pathname) + '?' + query;} else {_url = url || location.pathname;}if (hash) {_url = _url + '#' + hash;}return _url;},formatNum: function formatNum(num, unit) {if (num === undefined || typeof num == 'string' && isNaN(parseInt(num))) return '--';var unitMap = {'万': 10000},defaultUnit = '万';unit = typeof unit == 'string' ? unit : defaultUnit;var factor = unitMap[unit] || unitMap[defaultUnit];if (typeof num == 'string' && num.indexOf(unit) >= 0) return;if (typeof num == 'string' && num.indexOf(",") >= 0) {var nums = num.split(",");var total = "";for (var i = 0; i < nums.length; i++) {total += nums[i];}num = total;}num = parseInt(num);if (num >= factor) {num = (num / factor).toFixed(1) + unit;}return num;},parseCardProps: function parseCardProps(dataItem, type) {var props = {'data-gk': dataItem.play,'data-sc': dataItem.favorites,'data-pl': dataItem.review,'data-dm': dataItem.video_review,'data-up': dataItem.author,'data-subtitle': dataItem.subtitle,'data-lm': dataItem.typename || '','data-tg': dataItem.created ? new Date(dataItem.created * 1000).format('yyyy-MM-dd hh:mm') : dataItem.create || dataItem.created_at,'data-txt': dataItem.description,'data-yb': dataItem.coins},str = "";if (type == 'string') {for (var k in props) {if (str != "") {str += " ";}str += k + '="' + props[k] + '"';}return str;} else {return props;}},newParseCardProps: function newParseCardProps(dataItem, type) {var props = {'data-gk': dataItem.stat.view,'data-sc': dataItem.stat.favorite,'data-pl': dataItem.stat.reply,'data-dm': dataItem.stat.danmaku,'data-up': dataItem.owner.name,'data-lm': dataItem.tname || '','data-tg': new Date(dataItem.pubdate * 1000).format('yyyy-MM-dd hh:mm'),'data-txt': dataItem.desc,'data-yb': dataItem.stat.coin};return props;},// protocol-relative 为了兼容ie8以下protocolRelative: function protocolRelative(url) {if (/http:|https:/.test(url)) {return url.replace(/http:|https:/, window.location.protocol);} else if ($.browser.msie && parseInt($.browser.version) <= 8) {return window.location.protocol + url;} else {return url;}},formatDuration: function formatDuration(duration, isToHour, minHeadBits) {if (typeof duration !== 'number') {return duration;}minHeadBits = minHeadBits || -1;var second = this.toFixed(duration % 60, 2);var minute = isToHour ? this.toFixed(Math.floor(duration % 3600 / 60), 2) : this.toFixed(Math.floor(duration / 60), minHeadBits);var hour = isToHour ? this.toFixed(Math.floor(duration / 3600), minHeadBits) : null;return hour === null ? [minute, second].join(':') : [hour, minute, second].join(':');},isObject: function isObject(obj) {return _typeof(obj) === 'object' && obj !== null;},isNothing: function isNothing(obj) {return obj == null; // Only deal with null/undefined values},isUndefined: function isUndefined(obj) {return typeof obj === 'undefined';},join: function join() {return Array.prototype.join.call(arguments, '');},random: function random(start, end) {if (this.isNothing(end)) {end = start;start = 0;}return Math.floor(Math.random() * (end - start + 1)) + start;},debounce: function debounce(func, delay, isImmediate) {var timeout;function debounced() {clearTimeout(timeout);if (isImmediate && utils.isNothing(timeout)) {func();}timeout = setTimeout(func, delay || 100);}debounced.clearNext = function () {clearTimeout(timeout);};return debounced;},throttle: function throttle(func, delay, options) {var timeout,prev = 0;delay = delay || 200;options = options || {};function later() {prev = options.head ? 0 : new Date().getTime();timeout = null;func();}function throttled() {var remain,now = new Date().getTime();if (!prev && options.head) {prev = now;}remain = delay - (now - prev);if (remain <= 0 || remain > delay) {clearTimeout(timeout);timeout = null;prev = now;func();} else if (!timeout && !options.tail) {timeout = setTimeout(later, remain);}}throttled.clearNext = function () {clearTimeout(timeout);timeout = null;prev = 0;};return throttled;},toFixed: function toFixed(data, bits) {if (typeof data !== 'number' && typeof data !== 'string') {return data;}data = String(data);bits = Number(bits) || 2;while (data.length < bits) {data = '0' + data;}return data.length > bits ? data : data.slice(-bits);},thumbnail: function thumbnail(src, width, height) {if (typeof src !== 'string') {return src;}if (typeof width === 'undefined') {return src;}var urls = src.split('?');var sizes, rules, feature, matches;height = height || width;sizes = {midfix: '/' + width + '_' + height,suffix: '_' + width + 'x' + height};rules = {cdn: /^http.+i[0-2]\.hdslb\.com\//,bfs: /^http.+i\d\.hdslb\.com\/bfs\//,group1: /^http.+i\d\.hdslb\.com\/group1\//,other: /(^http.+i\d\.hdslb\.com)(\/.+)/};feature = {bfs: /_\d+x\d+\./,other: /\/\d+_\d+\//};if (!rules.cdn.test(urls[0])) {return src;}if (feature.bfs.test(urls[0]) || feature.other.test(urls[0])) {return src;}if (rules.bfs.test(urls[0]) || rules.group1.test(urls[0])) {urls[0] += sizes.suffix + urls[0].slice(urls[0].lastIndexOf('.'));src = urls.join('?');} else {matches = rules.other.exec(urls[0]);if (matches) {urls[0] = matches[1] + sizes.midfix + matches[2];src = urls.join('?');}}return src;},//检查是否支持webpisWebp: function () {try {return document.createElement('canvas').toDataURL('image/webp').indexOf('data:image/webp') == 0;} catch (err) {return false;}}(),webp: function webp(url, args) {if (!url) {return url;}var suffix = url.match(/(.*\.(jpg|jpeg|gif|png|bmp))(\?.*)?/); //路径是否包含/bfs/var isBfs = url.indexOf('/bfs/') != -1 ? true : false; //是否是GIF图片if (!suffix || suffix[2] === 'bmp' || !isBfs) {return url;}var w = args.w,h = args.h; //裁剪规则var filter = [];if (w && h) {filter.push(w + 'w');filter.push(h + 'h');}if (args.freeze) {filter.push('1s');} // var cut = (w && h) ? '@' + w + 'w_' + h + 'h' : '@'//图片后参数 比如视频动态图var args = suffix[3] ? suffix[3] : '';if (this.isWebp) {return suffix[1] + '@' + filter.join('_') + '.webp' + args;} else {return suffix[1] + '@' + filter.join('_') + '.' + suffix[2] + args;}},isAlpha: function isAlpha(items, rate) {var machineDna;if (localStorage.getItem('machineDna')) {machineDna = localStorage.getItem('machineDna');} else {machineDna = parseInt(Math.random() * 10 + 1);localStorage.setItem('machineDna', machineDna);}if (this.isBeta(items) || rate < machineDna) {return true;} else {return false;}},isBeta: function isBeta(items) {var isOpen = false;var mantissa = utils.cookie.get('DedeUserID').slice(-1);if (mantissa && $.isArray(items)) {isOpen = $.inArray(+mantissa, items) > -1;}return isOpen;},trimHttp: function trimHttp(url) {return url ? url.replace(/^http:/, '') : '';},getByteLen: function getByteLen(val) {var len = 0;for (var i = 0; i < val.length; i++) {var a = val.charAt(i);if (a.match(/[^\x00-\xff]/ig) != null) {len += 1;} else {len += .5;}}return len;},// to do mreporter//评论在播放页日志上报videoReport: function videoReport(name) {// MReporter logicif (window.MReporter) {window.MReporter.click && window.MReporter.click({evt: "selfDef.".concat(name),msg: {event: name,value: name}});return;} // log-reporter logicif (window.spmReportData) {window.spmReportData[name] = name;}},//埋点上报customReport: function customReport(name, ops) {if (window.MReporter) {window.MReporter.click && window.MReporter.click({evt: "selfDef.".concat(name),msg: {event: name,value: ops || name}});}if (window.reportConfig && window[reportConfig['msgObjects']]) {var reportObj = window[reportConfig['msgObjects']];var obj = ops ? ops : name;reportObj[name] = obj;}},formatLotteryTime: function formatLotteryTime(time) {time = time * 1000;var date = new Date(time);var year = date.getFullYear();var month = date.getMonth() + 1;var day = date.getDate();var hour = date.getHours();var minute = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();return year + '年' + month + '月' + day + '日 ' + hour + ':' + minute;},hexToRgbA: function hexToRgbA(hex) {var localHex = hex.toString();if (hex.length === 6) {localHex = 'ff' + localHex;}var r = parseInt(localHex.slice(2, 4), 16),g = parseInt(localHex.slice(4, 6), 16),b = parseInt(localHex.slice(6, 8), 16),alpha = parseInt(localHex.slice(0, 2), 16);return "rgba(" + r + ", " + g + ", " + b + ", " + alpha / 255 + ")";},asyncScript: function asyncScript(url) {return new Promise(function (resolve) {var script = document.createElement('script');script.setAttribute('src', url);document.body.appendChild(script);script.onload = resolve;});},cmGetUrl: function cmGetUrl(cmData, id) {if (!window.BiliCm) return '';return window.BiliCm.Base.getSyncUrl(cmData, Number(id));},cmSendData: function cmSendData(cmData, id) {if (!window.BiliCm) return;window.BiliCm.Base.sendShowData(cmData, Number(id));},cmSendStrictData: function cmSendStrictData(cmData, id) {if (!window.BiliCm) return;window.BiliCm.Base.sendStrictShowData(cmData, Number(id));},cmSendCloseData: function cmSendCloseData(cmData, id) {if (!window.BiliCm) return;window.BiliCm.Base.sendCloseData(cmData, Number(id));},checkInView: function checkInView(el, padding) {if (!el) return;var rect = el.getBoundingClientRect();var p = padding || 0; // 只判断了纵向return rect.top < window.innerHeight + p && rect.bottom >= 0;},// to do mreporter/*** 完全自定义上报 可自定义上报通道和公共参数* @param {*} options*  spm_id : spmid 非必传 取meta中spmid*  c : C段  非必传 默认 0*  d : D段 非必传  默认 0*  e : E段 非必传  默认 0*  type : pv, click, appear 上报类型通道* @param {*} info*/allCustomReport: function allCustomReport() {var _document$getElements;var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};var info = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};var spm_idAB = options.spm_id || ((_document$getElements = document.getElementsByTagName('meta').spm_prefix) === null || _document$getElements === void 0 ? void 0 : _document$getElements.content) || '0.0';var spmidC = options.c || '0';var spmidD = options.d || '0';var spmidE = options.e || '0';var spm_id = spmidE ? "".concat(spm_idAB, ".").concat(spmidC, ".").concat(spmidD, ".").concat(spmidE) : "".concat(spm_idAB, ".").concat(spmidC, ".").concat(spmidD);if (!options.type) {throw new Error('report need type');}info.spm_id = spm_id; // MReporter logicif (window.MReporter) {var input = {msg: info,spm: {id: options.spm_id,mol: spmidC,pos: spmidD,ext: spmidE}};window.MReporter[options.type] && window.MReporter[options.type](input);return;} // log-reporter logicif (window.reportObserver && window.reportObserver.reportCustomData) {window.reportObserver.reportCustomData(options.type, info);}},getImgSrc: function getImgSrc(file) {var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};return utils.trimHttp(utils.webp(file, option));},// MReporter mr-show attribute 组装mrShowAttr: function mrShowAttr(msg, evtName, index) {var payload = {msg: msg,evt: "".concat(evtName, ".show.").concat(index)};return JSON.stringify(payload);}};(function() {'use strict';function getLocationSpanByReply(reply, attrs=""){if(reply && reply.reply_control && reply.reply_control.location){return `<span class="reply-location" ${attrs}>${reply.reply_control.location || ''}</span>`;}else{return "";}}hackEle(HTMLBodyElement.prototype, "insertBefore", hack);hackEle(HTMLHeadElement.prototype, "insertBefore", hack);hackEle(HTMLBodyElement.prototype, "appendChild", hack);hackEle(HTMLHeadElement.prototype, "appendChild", hack);StartObserveNewPage(); // 对新版视频页的进行inject ,just Testasync function StartObserveNewPage(){await mscststs.wait(".browser-pc")// 本来相对 Vue-next 的 render 做注入的,想了想感觉太麻烦了,还是简单点,做成 MutationObserver 算了const targetNode = document.querySelector("body");function setCode(){const nodes = [...document.querySelectorAll(".browser-pc .reply-item .reply-time"),...document.querySelectorAll(".browser-pc .sub-reply-item .sub-reply-time")];nodes.forEach(node=>{if(!node.__vueParentComponent){return;}if(node.settled){return;}node.settled = true;const item = node.__vueParentComponent.props.reply || node.__vueParentComponent.props.subReplylet locationSpan = getLocationSpanByReply(item,`style="margin-right:20px;"`);node.outerHTML = node.outerHTML + locationSpan ;//console.log(node)})}const config = { childList: true, subtree: true };const callback = function(mutationsList, observer) {setCode()};const observer = new MutationObserver(callback);observer.observe(targetNode, config);setCode()}function hackEle(ele, func, callback){const ori = ele[func];ele[func] = function(...args){// console.log(this, ...args)return callback(ori.bind(this), ...args)}};function injectbbComment(){const bbComment = window.bbComment;if( !bbComment.prototype._creat###bReplyUserFace ){//console.log("inject Old ")injectOldbbComment();}else{//console.log("inject New ")injectNewbbComment();}};// 旧版评论,为啥会有旧版评论呢,因为有人在用 403348 ~function injectOldbbComment(){const g = window.bbComment;const f = utils;g.prototype._createListCon = function(e, n, t) {var locationSpan = getLocationSpanByReply(e);var r = this._parentBlacklistDom(e, n, t), i = ['<div class="con ' + (t == n ? "no-border" : "") + '">', '<div class="user">' + this._identity(e.mid, e.assist, e.member.fans_detail), '<a data-usercard-mid="' + e.mid + '" href="//space.bilibili.com/' + e.mid + '" target="_blank" class="name ' + this._createVipClass(e.member.vip.vipType, e.member.vip.vipStatus, e.member.vip.themeType) + '">' + f.unhtml(e.member.uname) + '</a><a class="level-link" href="//www.bilibili.com/blackboard/help.html#%E4%BC%9A%E5%91%98%E7%AD%89%E7%BA%A7%E7%9B%B8%E5%85%B3" target="_blank"><i class="level l' + e.member.level_info.current_level + '"></i></a>' + this._createNameplate(e.member.nameplate) + this._createUserSailing(e.member && e.member.user_sailing || {}) + "</div>", this._createMsgContent(e), '<div class="info">', e.floor ? '<span class="floor">#' + e.floor + "</span>" : "", this._createPlatformDom(e.content.plat), '<span class="time">' + this._formateTime(e.ctime) + "</span>",locationSpan, e.lottery_id ? "" : '<span class="like ' + (1 == e.action ? "liked" : "") + '"><i></i><span>' + (e.like || "") + "</span></span>", e.lottery_id ? "" : '<span class="hate ' + (2 == e.action ? "hated" : "") + '"><i></i></span>', e.lottery_id ? "" : this._createReplyBtn(e.rcount), e.lottery_id && e.mid !== this.userStatus.mid ? "" : '<div class="operation more-operation"><div class="spot"></div><div class="opera-list"><ul>' + (this._canSetTop(e) ? '<li class="set-top">' + (e.isUpTop ? "取消置顶" : "设为置顶") + "</li>" : "") + (this._canBlackList(e.mid) ? '<li class="blacklist">加入黑名单</li>' : "") + (this._canReport(e.mid) ? '<li class="report">举报</li>' : "") + (this._canDel(e.mid) && !e.isTop ? '<li class="del" data-mid="' + e.mid + '">删除</li>' : "") + "</ul></div></div>", this._createLotteryContent(e.content), this._createVoteContent(e.content), this._createTags(e), "</div>", '<div class="reply-box">', this._creat###bReplyList(e.replies, e.rcount, !1, e.rpid, e.folder && e.folder.has_folded), "</div>", '<div class="paging-box">', "</div>", "</div>"].join("");return f.browser.version.mobile && (i = ['<div class="con ' + (t == n ? "no-border" : "") + '">', '<div class="user">' + this._identity(e.mid, e.assist, e.member.fans_detail), '<a data-usercard-mid="' + e.mid + '" href="//space.bilibili.com/' + e.mid + '" target="_blank" class="name ' + this._createVipClass(e.member.vip.vipType, e.member.vip.vipStatus, e.member.vip.themeType) + '">' + f.unhtml(e.member.uname) + '</a><a class="level-link" href="//www.bilibili.com/blackboard/help.html#%E4%BC%9A%E5%91%98%E7%AD%89%E7%BA%A7%E7%9B%B8%E5%85%B3" target="_blank"><i class="level l' + e.member.level_info.current_level + '"></i></a>' + this._createNameplate(e.member.nameplate) + '<div class="right">', e.floor ? '<span class="floor">#' + e.floor + "</span>" : "", '<span class="time">' + this._formateMobileTime(e.ctime) + "</span></div>", "</div>", this._createMsgContent(e), this._createVoteContent(e.content), '<div class="info">', this._createPlatformDom(e.content.plat), '<span class="like ' + (1 == e.action ? "liked" : "") + '"><i></i><span>' + (e.like || "") + "</span></span>", '<span class="hate ' + (2 == e.action ? "hated" : "") + '"><i></i></span>', this._createReplyBtn(e.rcount), '<div class="operation more-operation"><div class="spot"></div><div class="opera-list"><ul>' + (this._canSetTop(e) ? '<li class="set-top">' + (e.isUpTop ? "取消置顶" : "设为置顶") + "</li>" : "") + (this._canBlackList(e.mid) ? '<li class="blacklist">加入黑名单</li>' : "") + (this._canReport(e.mid) ? '<li class="report">举报</li>' : "") + (this._canDel(e.mid) && !e.isTop ? '<li class="del" data-mid="' + e.mid + '">删除</li>' : "") + "</ul></div></div>", "</div>", this._createTags(e), '<div class="reply-box">', this._creat###bReplyList(e.replies, e.rcount, !1, e.rpid, e.folder && e.folder.has_folded), "</div>", '<div class="paging-box">', "</div>", "</div>"].join("")),e.state === this.blacklistCode ? r : i}g.prototype._creat###bFoldedListCon = function(e) {var locationSpan = getLocationSpanByReply(e);var n = this._parentBlacklistDom(e, 0), t = ['<div class="con">', '<div class="user">' + this._identity(e.mid, e.assist, e.member.fans_detail), '<a data-usercard-mid="' + e.mid + '" href="//space.bilibili.com/' + e.mid + '" target="_blank" class="name ' + this._createVipClass(e.member.vip.vipType, e.member.vip.vipStatus, e.member.vip.themeType) + '">' + f.unhtml(e.member.uname) + '</a><a class="level-link" href="//www.bilibili.com/blackboard/help.html#%E4%BC%9A%E5%91%98%E7%AD%89%E7%BA%A7%E7%9B%B8%E5%85%B3" target="_blank"><i class="level l' + e.member.level_info.current_level + '"></i></a>' + this._createNameplate(e.member.nameplate), "</div>", this._createMsgContent(e), '<div class="info">', '<span class="time">' + this._formateTime(e.ctime) + "</span>",locationSpan, '<span class="like ' + (1 == e.action ? "liked" : "") + '"><i></i><span>' + (e.like || "") + "</span></span>", this._createReplyBtn(e.rcount), '<div class="operation more-operation"><div class="spot"></div><div class="opera-list"><ul>' + (this._canSetTop(e) ? '<li class="set-top">' + (e.isUpTop ? "取消置顶" : "设为置顶") + "</li>" : "") + (this._canBlackList(e.mid) ? '<li class="blacklist">加入黑名单</li>' : "") + (this._canReport(e.mid) ? '<li class="report">举报</li>' : "") + (this._canDel(e.mid) && !e.isTop ? '<li class="del" data-mid="' + e.mid + '">删除</li>' : "") + "</ul></div></div>", "</div>", "</div>"].join("");return f.browser.version.mobile && (t = ['<div class="con">', '<div class="user">' + this._identity(e.mid, e.assist, e.member.fans_detail), '<a data-usercard-mid="' + e.mid + '" href="//space.bilibili.com/' + e.mid + '" target="_blank" class="name ' + this._createVipClass(e.member.vip.vipType, e.member.vip.vipStatus, e.member.vip.themeType) + '">' + f.unhtml(e.member.uname) + '</a><a class="level-link" href="//www.bilibili.com/blackboard/help.html#%E4%BC%9A%E5%91%98%E7%AD%89%E7%BA%A7%E7%9B%B8%E5%85%B3" target="_blank"><i class="level l' + e.member.level_info.current_level + '"></i></a>' + this._createNameplate(e.member.nameplate), '<div class="right">', '<span class="time">' + this._formateMobileTime(e.ctime) + "</span></div>", "</div>", this._createMsgContent(e), '<div class="info">', this._createPlatformDom(e.content.plat), '<span class="like ' + (1 == e.action ? "liked" : "") + '"><i></i><span>' + (e.like || "") + "</span></span>", this._createReplyBtn(e.rcount), '<div class="operation more-operation"><div class="spot"></div><div class="opera-list"><ul>' + (this._canSetTop(e) ? '<li class="set-top">' + (e.isUpTop ? "取消置顶" : "设为置顶") + "</li>" : "") + (this._canBlackList(e.mid) ? '<li class="blacklist">加入黑名单</li>' : "") + (this._canReport(e.mid) ? '<li class="report">举报</li>' : "") + (this._canDel(e.mid) && !e.isTop ? '<li class="del" data-mid="' + e.mid + '">删除</li>' : "") + "</ul></div></div>", "</div>", "</div>"].join("")),e.state === this.blacklistCode ? n : t}g.prototype._createTopFoldedListCon = function(e) {var locationSpan = getLocationSpanByReply(e);var n = this._parentBlacklistDom(e, 0), t = ['<div class="con">', '<div class="user">' + this._identity(e.mid, e.assist, e.member.fans_detail), '<a data-usercard-mid="' + e.mid + '" href="//space.bilibili.com/' + e.mid + '" target="_blank" class="name ' + this._createVipClass(e.member.vip.vipType, e.member.vip.vipStatus, e.member.vip.themeType) + '">' + f.unhtml(e.member.uname) + '</a><a class="level-link" href="//www.bilibili.com/blackboard/help.html#%E4%BC%9A%E5%91%98%E7%AD%89%E7%BA%A7%E7%9B%B8%E5%85%B3" target="_blank"><i class="level l' + e.member.level_info.current_level + '"></i></a>' + this._createNameplate(e.member.nameplate), "</div>", this._createMsgContent(e), '<div class="info">', e.floor ? '<span class="floor">#' + e.floor + "</span>" : "", this._createPlatformDom(e.content.plat), '<span class="time">' + this._formateTime(e.ctime) + "</span>",locationSpan, '<span class="like ' + (1 == e.action ? "liked" : "") + '"><i></i><span>' + (e.like || "") + "</span></span>", '<span class="hate ' + (2 == e.action ? "hated" : "") + '"><i></i></span>', this._createReplyBtn(e.rcount), '<div class="operation more-operation"><div class="spot"></div><div class="opera-list"><ul>' + (this._canSetTop(e) ? '<li class="set-top">' + (e.isUpTop ? "取消置顶" : "设为置顶") + "</li>" : "") + (this._canBlackList(e.mid) ? '<li class="blacklist">加入黑名单</li>' : "") + (this._canReport(e.mid) ? '<li class="report">举报</li>' : "") + (this._canDel(e.mid) && !e.isTop ? '<li class="del" data-mid="' + e.mid + '">删除</li>' : "") + "</ul></div></div>", "</div>", "</div>"].join("");return f.browser.version.mobile && (t = ['<div class="con">', '<div class="user">' + this._identity(e.mid, e.assist, e.member.fans_detail), '<a data-usercard-mid="' + e.mid + '" href="//space.bilibili.com/' + e.mid + '" target="_blank" class="name ' + this._createVipClass(e.member.vip.vipType, e.member.vip.vipStatus, e.member.vip.themeType) + '">' + f.unhtml(e.member.uname) + '</a><a class="level-link" href="//www.bilibili.com/blackboard/help.html#%E4%BC%9A%E5%91%98%E7%AD%89%E7%BA%A7%E7%9B%B8%E5%85%B3" target="_blank"><i class="level l' + e.member.level_info.current_level + '"></i></a>' + this._createNameplate(e.member.nameplate), '<div class="right">', e.floor ? '<span class="floor">#' + e.floor + "</span>" : "", '<span class="time">' + this._formateMobileTime(e.ctime) + "</span></div>", "</div>", this._createMsgContent(e), '<div class="info">', this._createPlatformDom(e.content.plat), '<span class="like ' + (1 == e.action ? "liked" : "") + '"><i></i><span>' + (e.like || "") + "</span></span>", '<span class="hate ' + (2 == e.action ? "hated" : "") + '"><i></i></span>', this._createReplyBtn(e.rcount), '<div class="operation more-operation"><div class="spot"></div><div class="opera-list"><ul>' + (this._canSetTop(e) ? '<li class="set-top">' + (e.isUpTop ? "取消置顶" : "设为置顶") + "</li>" : "") + (this._canBlackList(e.mid) ? '<li class="blacklist">加入黑名单</li>' : "") + (this._canReport(e.mid) ? '<li class="report">举报</li>' : "") + (this._canDel(e.mid) && !e.isTop ? '<li class="del" data-mid="' + e.mid + '">删除</li>' : "") + "</ul></div></div>", "</div>", "</div>"].join("")),e.state === this.blacklistCode ? n : t}g.prototype._parentBlacklistDom = function(e, n, t) {var locationSpan = getLocationSpanByReply(e);return ['<div class="con ' + (t == n ? "no-border" : "") + '">', '<div class="user blacklist-font-color">黑名单用户</div>', '<p class="text">由于黑名单设置,该评论已被隐藏。</p>', '<div class="info">', e.floor ? '<span class="floor">#' + e.floor + "</span>" : "", this._createPlatformDom(e.content.plat), '<span class="time">' + this._formateTime(e.ctime) + "</span>", locationSpan, this._canDel(e.mid) ? '<div class="operation btn-hover"><div class="spot"></div><div class="opera-list"><ul><li class="del" data-mid="' + e.mid + '">删除</li></ul></div></div>' : "", "</div>", "</div>"].join("")}g.prototype._subBlacklistDom = function(e) {var locationSpan = getLocationSpanByReply(e);return ['<div class="reply-item reply-wrap" data-id="' + e.rpid + '">', '<a class="reply-face"><img src="' + this.noface + '"></a>', '<div class="reply-con">', '<div class="user">', '<span class="blacklist-font-color name">黑名单用户 </span> <span class="text-con">由于黑名单设置,该回复已被隐藏。</span>', "</div>", "</div>", '<div class="info">', '<span class="time">' + this._formateTime(e.ctime) + "</span>", locationSpan, this._canDel(e.mid) ? '<div class="operation btn-hover btn-hide-re"><div class="spot"></div><div class="opera-list"><ul><li class="del" data-mid="' + e.mid + '">删除</li></ul></div></div>' : "", "</div>", "</div>"].join("")}g.prototype._creat###bReplyItem = function(e, n) {var locationSpan = getLocationSpanByReply(e);var t = ['<div class="reply-item reply-wrap" data-id="' + e.rpid + '" data-index="' + n + '">', '<a href="//space.bilibili.com/' + e.mid + '" data-usercard-mid="' + e.mid + '" target="_blank" class="reply-face">', '<img src="' + f.trimHttp(f.webp(e.member.avatar, {w: 52,h: 52})) + '" alt="">', "</a>", '<div class="reply-con">', '<div class="user">', '<a href="//space.bilibili.com/' + e.mid + '" target="_blank" data-usercard-mid="' + e.mid + '" class="name ' + this._createVipClass(e.member.vip.vipType, e.member.vip.vipStatus, e.member.vip.themeType) + '">' + f.unhtml(e.member.uname) + "</a>", '<a class="level-link" href="//www.bilibili.com/blackboard/help.html#%E4%BC%9A%E5%91%98%E7%AD%89%E7%BA%A7%E7%9B%B8%E5%85%B3" target="_blank"><i class="level l' + e.member.level_info.current_level + '"></i></a>', this._creat###bMsgContent(e), "</div>", "</div>", '<div class="info">', '<span class="time">' + this._formateTime(e.ctime) + "</span>", locationSpan, '<span class="like ' + (1 == e.action ? "liked" : "") + '"><i></i><span>' + (e.like || "") + "</span></span>", '<span class="hate ' + (2 == e.action ? "hated" : "") + '"><i></i></span>', '<span class="reply btn-hover">回复</span>', '<div class="operation btn-hover btn-hide-re"><div class="spot"></div><div class="opera-list"><ul>' + (this._canBlackList(e.mid) ? '<li class="blacklist">加入黑名单</li>' : "") + (this._canReport(e.mid) ? '<li class="report">举报</li>' : "") + (this._canDel(e.mid) ? '<li class="del" data-mid="' + e.mid + '">删除</li>' : "") + "</ul></div></div>", "</div>", "</div>"].join("");return f.browser.version.mobile && (t = ['<div class="reply-item reply-wrap" data-id="' + e.rpid + '" data-index="' + n + '">', '<div class="reply-con">', '<div class="user">', '<a href="//space.bilibili.com/' + e.mid + '" target="_blank" data-usercard-mid="' + e.mid + '" class="name ' + this._createVipClass(e.member.vip.vipType, e.member.vip.vipStatus, e.member.vip.themeType) + '">' + f.unhtml(e.member.uname) + "</a>", '<a class="level-link" href="//www.bilibili.com/blackboard/help.html#%E4%BC%9A%E5%91%98%E7%AD%89%E7%BA%A7%E7%9B%B8%E5%85%B3" target="_blank"><i class="level l' + e.member.level_info.current_level + '"></i>', '<div class="right"><span class="time">' + this._formateMobileTime(e.ctime) + "</span></div>", "</a>", this._creat###bMsgContent(e), "</div>", '<div class="info">', '<span class="like ' + (1 == e.action ? "liked" : "") + '"><i></i><span>' + (e.like || "") + "</span></span>", '<span class="reply btn-hover">回复</span>', '<div class="operation btn-hover btn-hide-re"><div class="spot"></div><div class="opera-list"><ul>' + (this._canBlackList(e.mid) ? '<li class="blacklist">加入黑名单</li>' : "") + (this._canReport(e.mid) ? '<li class="report">举报</li>' : "") + (this._canDel(e.mid) ? '<li class="del" data-mid="' + e.mid + '">删除</li>' : "") + "</ul></div></div>", "</div>", "</div>", "</div>"].join("")),t}}function injectNewbbComment(){const bbComment = window.bbComment;// console.log("inject New ")bbComment.prototype._createListCon = function (item, i, pos) {//黑名单结构var blCon = this._parentBlacklistDom(item, i, pos); //正常结构var con = ['<div class="con ' + (pos == i ? 'no-border' : '') + '">', '<div class="user">' + this._createNickNameDom(item), this._createLevelLink(item), this._identity(item.mid, item.assist, item.member.fans_detail), this._createNameplate(item.member.nameplate) + this._createUserSailing(item) + '</div>', this._createMsgContent(item), this._createPerfectReply(item), '<div class="info">', this._createPlatformDom(item.content.plat), "<span class=\"time-location\">", "<span class=\"reply-time\">".concat(this._formateTime(item.ctime), "</span>"), getLocationSpanByReply(item),"</span>", item.lottery_id ? '' : '<span class="like ' + (item.action == 1 ? 'liked' : '') + '"><i></i><span>' + (item.like ? item.like : '') + '</span></span>', item.lottery_id ? '' : '<span class="hate ' + (item.action == 2 ? 'hated' : '') + '"><i></i></span>', item.lottery_id ? '' : this._createReplyBtn(item.rcount), item.lottery_id && item.mid !== this.userStatus.mid ? '' : '<div class="operation more-operation"><div class="spot"></div><div class="opera-list"><ul>' + (this._canSetTop(item) ? '<li class="set-top">' + (item.isUpTop ? '取消置顶' : '设为置顶') + '</li>' : '') + (this._canBlackList(item.mid) ? '<li class="blacklist">加入黑名单</li>' : '') + (this._canReport(item.mid) ? '<li class="report">举报</li>' : '') + (this._canDel(item.mid) && !item.isTop ? '<li class="del" data-mid="' + item.mid + '">删除</li>' : '') + '</ul></div></div>', this._createLotteryContent(item.content), this._createVoteContent(item.content), this._createTags(item), '</div>', '<div class="reply-box">', this._creat###bReplyList(item.replies, item.rcount, false, item.rpid, item.folder && item.folder.has_folded, item.reply_control), '</div>', '<div class="paging-box">', '</div>', '</div>'].join('');if (utils.browser.version.mobile) {con = ['<div class="con ' + (pos == i ? 'no-border' : '') + '">', '<div class="user">' + this._identity(item.mid, item.assist, item.member.fans_detail), this._createNickNameDom(item), this._createLevelLink(item), this._createNameplate(item.member.nameplate) + '<div class="right">', '<span class="time">' + this._formateMobileTime(item.ctime) + '</span></div>', '</div>', this._createMsgContent(item), this._createVoteContent(item.content), '<div class="info">', this._createPlatformDom(item.content.plat), '<span class="like ' + (item.action == 1 ? 'liked' : '') + '"><i></i><span>' + (item.like ? item.like : '') + '</span></span>', '<span class="hate ' + (item.action == 2 ? 'hated' : '') + '"><i></i></span>', this._createReplyBtn(item.rcount), '<div class="operation more-operation"><div class="spot"></div><div class="opera-list"><ul>' + (this._canSetTop(item) ? '<li class="set-top">' + (item.isUpTop ? '取消置顶' : '设为置顶') + '</li>' : '') + (this._canBlackList(item.mid) ? '<li class="blacklist">加入黑名单</li>' : '') + (this._canReport(item.mid) ? '<li class="report">举报</li>' : '') + (this._canDel(item.mid) && !item.isTop ? '<li class="del" data-mid="' + item.mid + '">删除</li>' : '') + '</ul></div></div>', '</div>', this._createTags(item), '<div class="reply-box">', this._creat###bReplyList(item.replies, item.rcount, false, item.rpid, item.folder && item.folder.has_folded, item.reply_control), '</div>', '<div class="paging-box">', '</div>', '</div>'].join('');}return item.state === this.blacklistCode ? blCon : con;};bbComment.prototype._creat###bReplyItem = function (item, i) {if (item.invisible) {return '';}var dom = ['<div class="reply-item reply-wrap" data-id="' + item.rpid + '" data-index="' + i + '">', this._creat###bReplyUserFace(item), // '<a href="//space.bilibili.com/' + item.mid + '" data-usercard-mid="' + item.mid + '" target="_blank" class="reply-face">',// '<img src="' + utils.trimHttp(utils.webp(item.member.avatar, { w: 52, h: 52, freeze: true })) + '" alt="">',// '</a>','<div class="reply-con">', '<div class="user">', this._createNickNameDom(item), this._createLevelLink(item), this._identity(item.mid), this._creat###bMsgContent(item), '</div>', '</div>', '<div class="info">', "<span class=\"time-location\">", "<span class=\"reply-time\">".concat(this._formateTime(item.ctime), "</span>"), getLocationSpanByReply(item),"</span>", '<span class="like ' + (item.action == 1 ? 'liked' : '') + '"><i></i><span>' + (item.like ? item.like : '') + '</span></span>', '<span class="hate ' + (item.action == 2 ? 'hated' : '') + '"><i></i></span>', '<span class="reply btn-hover">回复</span>', '<div class="operation btn-hover btn-hide-re"><div class="spot"></div><div class="opera-list"><ul>' + (this._canBlackList(item.mid) ? '<li class="blacklist">加入黑名单</li>' : '') + (this._canReport(item.mid) ? '<li class="report">举报</li>' : '') + (this._canDel(item.mid) ? '<li class="del" data-mid="' + item.mid + '">删除</li>' : '') + '</ul></div></div>', '</div>', '</div>'].join('');if (utils.browser.version.mobile) {dom = ['<div class="reply-item reply-wrap" data-id="' + item.rpid + '" data-index="' + i + '">', // '<a href="//space.bilibili.com/' + item.mid + '" data-usercard-mid="' + item.mid + '" target="_blank" class="reply-face">',// '<img src="' + utils.trimHttp(utils.webp(item.member.avatar, {w: 52, h: 52})) +'" alt="">',// '</a>','<div class="reply-con">', '<div class="user">', this._createNickNameDom(item), this._createLevelLink(item), this._identity(item.mid), '<div class="right"><span class="time">' + this._formateMobileTime(item.ctime) + '</span></div>', '</a>', this._creat###bMsgContent(item), '</div>', '<div class="info">', '<span class="like ' + (item.action == 1 ? 'liked' : '') + '"><i></i><span>' + (item.like ? item.like : '') + '</span></span>', '<span class="reply btn-hover">回复</span>', '<div class="operation btn-hover btn-hide-re"><div class="spot"></div><div class="opera-list"><ul>' + (this._canBlackList(item.mid) ? '<li class="blacklist">加入黑名单</li>' : '') + (this._canReport(item.mid) ? '<li class="report">举报</li>' : '') + (this._canDel(item.mid) ? '<li class="del" data-mid="' + item.mid + '">删除</li>' : '') + '</ul></div></div>', '</div>', '</div>', '</div>'].join('');}return dom;}}// 使用 setter 监听 comment 脚本的注册let f = undefined;Object.defineProperty(window,'bbComment',{get: function(){return f;},set: function(val){f = val;injectbbComment();},configurable: true,});function hack(origin, ...args){const [ele, target] = [...args];if( ele.src && ~ele.src.indexOf("/x/v2/reply")){// 确定是评论类型,执行额外流程injectbbComment()}// 监听 comment 组件的注入if(ele.src && ele.src.endsWith("comment.min.js")){const ori = ele.onload;ele.onload = function(...args){injectbbComment();ori && ori(...args);}};// 监听 comment_vue_next 组件的注入,直接在dynamic import 时修改源码,也是一种权宜之计,该版本针对Vue3架构if(ele.src && ele.src.endsWith("comment-pc-vue.next.js")){// console.log("新版评论,启用源码注入");!(async function(){let code = await (await fetch(ele.src)).text();const Ref1Index = code.indexOf("getReplyFloorInfo=");const Ref2Index = code.indexOf("getReplyBoxStatus=");if( Ref2Index > Ref1Index && Ref1Index > -1){code = code.replace(`getReplyFloorInfo=`,`_RAWgetReplyFloorInfo=`);code = code.replace(`getReplyBoxStatus=`,`getReplyFloorInfo=Q=>{return {..._RAWgetReplyFloorInfo(Q),replyLocation: computed(()=>{ return Q.value.reply_control.location || ""})}},getReplyBoxStatus=`);}else{console.error("【评论区开盒】Patch 失败【Vue3 版本】,无法找到正确的 Patch 位置,请反馈后等待开发者修复");}eval(code);ele.dispatchEvent(new Event("load",{bubbles:true,}));ele.onload && ele.onload();})();return;};// 针对 lit 架构的if(ele.src && (ele.src.endsWith("comment-pc-elements.next.js") || (ele.src.indexOf("commentpc/bili-comments.") > -1))){//console.log("新版评论,启用源码注入");!(async function(){let code = await (await fetch(ele.src)).text();const Ref1Index = code.indexOf(`<div id="pubdate">','</div>`);const Ref2Index = code.indexOf("this.pubDate,this.handleLike,");if( Ref2Index > Ref1Index  && Ref1Index >-1){//ref 1code = code.replace(`<div id="pubdate">','</div>`, `<div id="pubdate">','</div><div id="location" style="margin-left:var(--kaihe-ml, 20px)">','</div>`);//ref 2code = code.replace(`this.pubDate,this.handleLike,`,`this.pubDate,(this.data && this.data.reply_control)? this.data.reply_control.location : null,this.handleLike,`);}else{console.error("【评论区开盒】Patch 失败【Elements-lit版本】,无法找到正确的 Patch 位置,请反馈后等待开发者修复");}eval(code);ele.dispatchEvent(new Event("load",{bubbles:true,}));ele.onload && ele.onload();})();return;};//console.log(ele,ele.src,origin)let res = origin(...args);//console.log(res)return res;//return ele;}})();