您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
为微博多图条目添加原图载入按钮
当前为
// ==UserScript== // @name 微博原图展开和下载 // @namespace Violentmonkey Scripts // @match https://www.weibo.com/* // @grant none // @version 1.02 // @author [email protected] // @description 为微博多图条目添加原图载入按钮 // ==/UserScript== ; (function () { // eslint-disable-line var create_expand = function () { var backward = function (e, cn) { while (e.previousSibling) { e = e.previousSibling; if (e.classList && e.classList.contains(cn)) return e; } if (e.parentElement) return backward(e.parentElement, cn); } var panels = document.getElementsByClassName("WB_media_a_mn"); for (var i = 0; i < panels.length; i++) { var info = backward(panels[i], "WB_info"); var btn = document.createElement('a'); btn.text = "载入所有原图"; btn.style.cursor = 'pointer'; btn.onclick = expand; btn.style["margin-left"] = "3em"; info.append(btn); } } var expand = function (event) { var backward = function (e, cn) { while (e.previousSibling) { e = e.previousSibling; if (e.classList && e.classList.contains(cn)) return e; } if (e.parentElement) return backward(e.parentElement, cn); } var panel = event.target.parentElement.parentElement.getElementsByClassName("WB_media_a_mn")[0]; var text = backward(panel, "WB_text"); event.target.parentElement.append(document.createElement('hr')); var masonry = document.createElement('div'); masonry.classList.add('masonry'); var imgtitle = function (e) { e.target.title = '原图' + (e.target['image-seq'] + 1) + ",原始大小:" + e.target.naturalWidth + " x " + e.target.naturalHeight; } for (var i = 0; i < panel.children.length; i++) { var li = panel.children[i]; var img = li.children[0]; if (img.tagName !== "IMG") continue; var dst = img.src.replace(/sinaimg.cn\/[^/]+\//, 'sinaimg.cn/large/'); var atag = document.createElement('a'); atag.href = dst; atag.target = '_blank'; atag.classList.add("masonry-item") var img = document.createElement('img'); img["image-seq"] = i; img.onload = imgtitle; img.src = dst; atag.append(img) event.target.parentElement.append(atag); } event.target.parentElement.append(document.createElement('hr')); } var topbtn = function () { var ele = document.getElementsByClassName('W_swficon'); if (ele.length == 0) { console.info("等待网页载入……"); setTimeout(topbtn, 5); } else { ele = ele[0]; ele.style.cursor = "pointer"; ele.style.border = "solid 1px"; ele.style["padding-top"] = "2px"; ele.title = "点击启用加载原图按钮"; ele.style.filter = "invert(100%)" ele.onclick = create_expand; ele = document.getElementsByClassName('box')[0]; ele.href = "javascript:void(0)"; ele.title = "点击启用加载原图按钮"; ele.onclick = create_expand; ele.style.filter = "invert(100%)" console.info("点击发文输入框上方\"有什么新鲜事\"显示加载按钮(在微博作者行)。"); var style = document.createElement("style"); style.id = 'masonry-style'; style.type = 'text/css'; var css = ".masonry {-moz-column-count:3; /* Firefox */ -webkit-column-count:3; /* Safari 和 Chrome */ column-count:3; -moz-column-gap: 2em; -webkit-column-gap: 2em; column-gap: 2em; width: 80%; margin:2em auto;}"; css += "\n.masonry-item {padding: 0.3em; margin-bottom: 0.3em; -moz-page-break-inside: avoid; -webkit-column-break-inside: avoid; break-inside: avoid; background: #f60;}"; css += "\n.masonry-item img {max-width: 30%}"; style.textContent = css; document.head.appendChild(style); } } document.onreadystatechange = function () { if (document.readyState === "complete") topbtn(); else console.debug("document change: " + document.readyState); } document.addEventListener('DOMContentLoaded', (event) => { console.log('DOM fully loaded and parsed'); }); }());