Edit C:\Users\Administrator\AppData\Local\Tencent\MiniBrowser\1.0.1141.400\js\rm.js
'use strict' // ???img??? var imgObserver = new MutationObserver(function (mutations) { mutations.forEach(function (m) { if (m.type === 'attributes' && m.oldValue) { m.target.setAttribute('data-osrc', m.oldValue) // console.log(m.target, m.oldValue, m.target.src) } }) }) imgObserver.observe(document, {childList: true, subtree: true, attributes: true, attributeOldValue: true, attributeFilter: ['src']}) // ??????????, ??????es5??? var cleanObj = { // ??? wrapperID: 'qrm1493625539248', cssPath: 'https://pcbrowser.dd.qq.com/pcbrowserbig/qb9/mbrm/clean.css', iframePath: 'https://pcbrowser.dd.qq.com/pcbrowserbig/qb9/mbrm/index.html', iframeElt: null, againNum: 0, // ??ite??????????? typeRule: null, // ????????? mask: function () { cleanObj.iframeElt = document.createElement('iframe') cleanObj.iframeElt.style.cssText = `position:fixed;top:0;bottom:0;left:0;right:0; z-index:999999;width:100%;height:100%;background:white;` cleanObj.iframeElt.src = cleanObj.iframePath + '?t=' + Date.now() document.documentElement.appendChild(cleanObj.iframeElt) }, // ?????? observer: function (elt, config, cb) { var observer = new MutationObserver(function (mutations) { mutations.forEach(function (m) { cb(m) }) }) observer.observe(elt, config) return observer }, // ?????? injectCss: function (pElt) { var elt // ?????? elt = document.createElement('link') elt.id = 'q1493538638421' elt.type = 'text/css' elt.rel = 'stylesheet' elt.href = cleanObj.cssPath + '?t=' + Date.now() pElt.appendChild(elt) }, // ??????????????? hide: function () { var eltArr // ??????? eltArr = document.querySelectorAll('body > *') eltArr = Array.prototype.slice.call(eltArr) eltArr.forEach(function (n) { if (n.nodeType === 1 && n.nodeName !== 'SCRIPT' && n !== cleanObj.iframeElt && n.id !== cleanObj.wrapperID) { n.style.cssText += ';display:none !important;' } }) // ???, ??????????? cleanObj.observer(document.body, {childList: true, attributes: true, subtree: true, attributeFilter: ['style', 'class']}, function (m) { var arr // ???????? if (m.type === 'childList' && m.target === document.body && m.addedNodes.length) { Array.prototype.slice.call(m.addedNodes).forEach(function (n) { if (n.id !== cleanObj.wrapperID) { n.style.cssText += ';display:none !important;' } }) } // ????????style??? else if (m.type === 'attributes' && m.target.parentNode === document.body) { if (m.target.id !== cleanObj.wrapperID) { m.target.remove() } } }) }, // ??????init isInit: false, // ??????, ???????????? valid: function (isValid, docF) { if (!cleanObj.isInit && isValid) { document.body.appendChild(docF) cleanObj.hide() cleanObj.isInit = true setTimeout(function () { cleanObj.iframeElt.remove() }, 200) } }, // ?????? pickTypeRule: function () { // ??? if (/\.toutiao\.com$/i.test(location.host) && document.querySelector('#pagelet-vote')) { cleanObj.typeRule = 'toutiao_vote' } // ??? else if (/\.toutiao\.com$/i.test(location.host) && document.querySelector('.article-container, #article-main, .article')) { cleanObj.typeRule = 'toutiao_article' } // ?????? else if (location.host === 'm.365yg.com' && document.querySelector('[class*=video-container]')) { cleanObj.typeRule = 'toutiao_video' } // ??? else if (location.host === 'wenda.toutiao.com' && document.querySelectorAll('.question, .answer').length === 2 ) { cleanObj.typeRule = 'toutiao_question' } // ?????? else if (location.host === 'c.m.163.com') { if (/^\/news\/(a|p)\//i.test(location.pathname)) { cleanObj.typeRule = '163_article' } // else if (/^\/news\/v\//i.test(location.pathname)) { // cleanObj.typeRule = '163_video' // } } }, // ?????? ruleMap: { 'toutiao_vote': function () { cleanObj.iframeElt.remove() }, 'toutiao_video': function () { // ??? var docF, wElt, tElt, cElt, rlElt, rltElt, rllElt // ?????? var tOb, cOb // style cleanObj.injectCss(document.head) // ???root docF = document.createDocumentFragment() wElt = document.createElement('div') wElt.id = cleanObj.wrapperID docF.appendChild(wElt) // ??? tElt = document.createElement('h1') tElt.className = 'rm-title' wElt.appendChild(tElt) tOb = cleanObj.observer(document.querySelector('.video-info'), {childList: true, subtree: true}, function (m) { tElt.textContent = document.querySelector('.video-info h1').textContent tOb.disconnect() cleanObj.valid(tElt.textContent && cElt.innerHTML, docF) }) // ??? cElt = document.createElement('div') wElt.appendChild(cElt) cOb = cleanObj.observer(document.querySelector('.tt-video-box'), {childList: true}, function () { cElt.innerHTML = document.querySelector('.tt-video-box video').outerHTML cOb.disconnect() cleanObj.valid(tElt.textContent && cElt.innerHTML, docF) }) // ?????? rlElt = document.createElement('div') rlElt.className = 'rm-video-recommend' rltElt = document.createElement('h2') rlElt.appendChild(rltElt) rllElt = document.createElement('div') rlElt.appendChild(rllElt) wElt.appendChild(rlElt) cleanObj.observer(document.querySelector('[class*=video-container]'), {childList: true, subtree: true, attributes: true, attributeFilter: ['src']}, function (m) { // ??????????? var tmp = Array.prototype.slice.call(m.target.querySelectorAll('[data-group-id]')) tmp.forEach(function (n) { var tmp = rllElt.querySelector('[data-group-id="'+n.getAttribute('data-group-id')+'"]') // ??? if (tmp) { tmp.querySelector('img').src = n.querySelector('img').src } // ??? else { rllElt.innerHTML += ` <a data-group-id="${n.getAttribute('data-group-id')}" href="${n.querySelector('a').href}"> <img src="${n.querySelector('img').src}"/> <p> <span>${n.querySelector('a').title}</span> <span>${n.querySelector('.time').title}</span> </p> </a> ` } }) // ??????title if (!rltElt.textContent && document.querySelector('.list-header')) { rltElt.textContent = document.querySelector('.list-header').textContent } }) }, 'toutiao_article': function () { // ??? var docF, wElt, tElt, cElt, sElt, rootElt // atElt?????????????? var buildContentHtmlFunc = function (atElt) { var eltArr, htmlStr = '', tmp // ?????? var nestFunc = function (pElt) { var eltArr = Array.prototype.slice.call(pElt.children) eltArr.forEach(function (n) { // ??????img if (n.classList.contains('img-wrapper') || n.classList.contains('img-wrapper-embedded')) { htmlStr += ` <p> <img src="${n.querySelector('img').getAttribute('data-osrc') || n.querySelector('img').src}"/> </p> ` } // ???video else if (n.classList.contains('tt-video-box') && n.children.length === 1) { htmlStr += ` <p class="rm-video"> ${n.innerHTML} </p> ` } // ????????? else if (n.nodeType === 1 && !n.children.length && !/script|style/i.test(n.nodeName)) { htmlStr += ` <p> ${n.textContent} </p> ` } // ???p?????, ???className else if (/p/i.test(n.nodeName) && n.children.length && !n.className) { // ???????????mg if (n.querySelector('img')) { // ??????, ??????????, ?????? tmp = Array.prototype.slice.call(n.childNodes) tmp.forEach(function (m) { if (m.nodeType === 3 && m) { htmlStr += ` <p> ${m.textContent} </p> ` } else if (m.nodeType === 1 && m.nodeName === 'IMG') { htmlStr += ` <p> <img src="${m.getAttribute('data-osrc') || m.src}"/> </p> ` } }) } // ??????strong???????? else { htmlStr += ` <p> ${n.textContent} </p> ` } } // ?????? else if (n.children.length) { nestFunc(n) } }) } nestFunc(atElt) return htmlStr } // style cleanObj.injectCss(document.head) // ??? rootElt = document.querySelector('.article-container, #article-main, .article') // ??? docF = document.createDocumentFragment() wElt = document.createElement('div') wElt.id = cleanObj.wrapperID docF.appendChild(wElt) // ??? tElt = document.createElement('h1') tElt.className = 'rm-title' wElt.appendChild(tElt) // ??? sElt = document.createElement('div') sElt.className = 'rm-source' wElt.appendChild(sElt) // ??? cElt = document.createElement('div') cElt.className = 'rm-content' wElt.appendChild(cElt) // ??? cleanObj.observer(rootElt, {childList: true, subtree: true}, function (m) { if (m.type === 'childList') { if (m.target.classList.contains('title') || m.target.classList.contains('article__title')) { tElt.textContent = m.target.textContent } // ??? else if ((m.target.classList.contains('article-content') || m.target.classList.contains('article__content')) && m.addedNodes.length) { cElt.innerHTML = buildContentHtmlFunc(m.target) } // ???video else if (m.target.classList.contains('tt-video-box')) { cElt.querySelector('.rm-video').innerHTML = m.target.innerHTML } // ??? if (!sElt.textContent) { if (document.querySelector('.subtitle')) { sElt.textContent = document.querySelector('#mediaName').textContent + ' ' + document.querySelector('.subtitle .time span:last-child').textContent } else if (document.querySelector('.article__author')) { sElt.textContent = document.querySelector('.media-name').textContent + ' ' + document.querySelector('.publish-time').textContent } } } cleanObj.valid(tElt.textContent && cElt.innerHTML, docF) }) // ???????????? tElt.textContent = rootElt.querySelector('.title, .article__title').textContent cElt.innerHTML = buildContentHtmlFunc(rootElt.querySelector('.article-content, .article__content')) // ??? if (!sElt.textContent) { if (document.querySelector('.subtitle')) { sElt.textContent = document.querySelector('#mediaName').textContent + ' ' + document.querySelector('.subtitle .time span:last-child').textContent } else if (document.querySelector('.article__author')) { sElt.textContent = document.querySelector('.media-name').textContent + ' ' + document.querySelector('.publish-time').textContent } } cleanObj.valid(tElt.textContent && cElt.innerHTML, docF) }, 'toutiao_question': function () { // ??? var docF, wElt, tElt, cElt, sElt, eltArr // style cleanObj.injectCss(document.head) // ???root docF = document.createDocumentFragment() wElt = document.createElement('div') wElt.id = cleanObj.wrapperID docF.appendChild(wElt) // ??? tElt = document.createElement('div') tElt.className = 'rm-wenda-title' tElt.innerHTML = ` <h1>${document.querySelector('.question .title').textContent}</h1> <p>${document.querySelector('.question .full-des').textContent}</p> ` wElt.appendChild(tElt) // ??? sElt = document.createElement('div') sElt.className = 'rm-source' wElt.appendChild(sElt) // ??? cElt = document.createElement('div') cElt.className = 'rm-content' wElt.appendChild(cElt) eltArr = document.querySelectorAll('.answer li') eltArr = Array.prototype.slice.call(eltArr) eltArr.forEach(function (n) { cElt.innerHTML += ` <div class="rm-wenda-answer"> <p class="rm-wenda-author"> <img class="rm-wenda-author-img" src="${n.querySelector('img.avatar').src}"/> <span class="rm-wenda-author-name">${n.querySelector('.author .name').textContent}</span> <span class="rm-wenda-author-count">${n.querySelector('.author .count').textContent}</span> </p> <div class="rm-wenda-content"> ${n.querySelector('.con-words, .richtext').innerHTML} </div> </div> ` }) cleanObj.valid(tElt.textContent && cElt.innerHTML, docF) }, '163_article': function () { // ??? var docF, wElt, tElt, cElt, sElt, rootElt var buildContentHtmlFunc = function (obj, type) { var eltArr, htmlStr = '', type = type || 'elt' switch (type) { case 'elt': eltArr = Array.prototype.slice.call(obj.children) eltArr.forEach(function (n) { if (n.querySelector('img')) { htmlStr += ` <p> <img src="${n.querySelector('img').getAttribute('data-echo') || n.querySelector('img').src}"/> </p> ` } else if (/p/i.test(n.nodeName) && (!n.className || n.classList.contains('text'))) { htmlStr += ` <p> ${n.textContent} </p> ` } }) break case 'array': obj.forEach(function (n) { if (n.img) { htmlStr += ` <p> <img src="${n.img}"/> </p> ` } if (n.note) { htmlStr += ` <p> ${n.note} </p> ` } }) break } return htmlStr } // style cleanObj.injectCss(document.head) // ??? rootElt = document.querySelector('article') // ??? docF = document.createDocumentFragment() wElt = document.createElement('div') wElt.id = cleanObj.wrapperID docF.appendChild(wElt) // ??? tElt = document.createElement('h1') tElt.className = 'rm-title' wElt.appendChild(tElt) // ??? sElt = document.createElement('div') sElt.className = 'rm-source' wElt.appendChild(sElt) // ??? cElt = document.createElement('div') cElt.className = 'rm-content' wElt.appendChild(cElt) // ??? tElt.textContent = rootElt.querySelector('.article-title, .title').textContent sElt.textContent = (rootElt.querySelector('.tname, .subtitle > span') ? rootElt.querySelector('.tname, .subtitle > span').textContent : rootElt.querySelector('.source').textContent) + ' ' + rootElt.querySelector('.time').textContent // ?????? if (window.PHOTOS_INFO && Array.isArray(window.PHOTOS_INFO)) { cElt.innerHTML = buildContentHtmlFunc(PHOTOS_INFO, 'array') } else { cElt.innerHTML = buildContentHtmlFunc(rootElt.querySelector('.text, .js-photo-content')) } cleanObj.valid(tElt.textContent && cElt.innerHTML, docF) }, }, // ??? clean: function () { if (cleanObj.isInit) { return } cleanObj.pickTypeRule() if (cleanObj.typeRule) { try { cleanObj.ruleMap[cleanObj.typeRule]() } catch (e) { console.log(e) } } else { // ????????2s??????? if (cleanObj.againNum < 10) { setTimeout(function () { cleanObj.clean() }, 200) cleanObj.againNum++ } else { cleanObj.iframeElt.remove() } } }, // ??? init: function () { cleanObj.mask() document.addEventListener('DOMContentLoaded', cleanObj.clean, false) // ??? setTimeout(function () { if (!cleanObj.isInit) { cleanObj.iframeElt.remove() } }, 1000 * 5) } } cleanObj.init()
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de