您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Github、Gitee代码托管网址,仓库图片文件预览功能,点击小图可直接在新窗口查看并保存文件
// ==UserScript== // @name Github、Gitee仓库 图片文件显示工具 // @namespace http://tampermonkey.net/ // @version 0.31 // @license HHB // @antifeature 此脚本只做学习交流,使用此脚本的造成任何后果概不负责 // @description Github、Gitee代码托管网址,仓库图片文件预览功能,点击小图可直接在新窗口查看并保存文件 // @author [email protected] // @match http*://github.com/* // @match http*://gitee.com/* // @icon https://gitee.com/static/images/logo-en.svg // @grant none // @run-at document-body // ==/UserScript== function matchSrc(src) { //console.log(src) var macths = ['.jpg','.png','.gif','.jpeg','.svg','.webp']; let result = macths.map(item => { //console.log(src.indexOf(item)) if(~src.indexOf(item)) { return true; } return false; }); let backRes = result.find(val=>{return val == true;}) ? true : false return backRes; }; function loadImgs (){ if (location.host.indexOf("github.com") !== -1 || location.host.indexOf("gitee.com") !== -1) { 'use strict'; var mgsty = location.host.indexOf("gitee.com") !== -1 ? "margin:0 4px;" : "margin:4px 12px 4px 0;"; var imgStyle = mgsty + " min-width: 45px;width: 45px; height: 45px;object-fit: contain;cursor: pointer;background:rgba(0,0,0,.1);border-radius: 4px;padding:4px;box-sizing:border-box;transition: all 0.2s;"; var imgStyleHover = mgsty + "width: 200px; height: 100px;object-fit: contain;cursor: pointer;background:rgba(0,0,0,.1);border-radius: 4px;padding:4px;box-sizing:border-box;transition: all 0.2s;"; var start = "https://github.com"; var end = "?raw=true"; // Github if (location.host.indexOf("github.com") !== -1) { var arrs = document.getElementsByClassName('Box-sc-g0xbh4-0 cAQuiW')[0].querySelector('tbody').getElementsByClassName('react-directory-row') if(document.getElementsByClassName('vbsNames').length > 0) { return false; } console.log(location.pathname,'目录,图片渲染完成,点击小图可在新窗口查看并保存图片') for (var i = 0; i < arrs.length; i++) { if(arrs[i].querySelector(".Link--primary")) { var src = arrs[i].querySelector(".Link--primary").href+end; if(matchSrc(src)) { var spans = arrs[i].querySelector('td.react-directory-row-name-cell-large-screen > div > div > h3 > div > a').parentNode; spans.style = "display: flex !important;flex-direction: row;align-items: center;"; arrs[i].querySelector('td.react-directory-row-name-cell-large-screen > div').style.height = "auto"; let imgs = document.createElement("img"); imgs.style = imgStyle; imgs.src = src; imgs.className = 'vbsNames'; spans.insertBefore(imgs,arrs[i].querySelector('td.react-directory-row-name-cell-large-screen > div > div > h3 > div > a')) imgs.onload = (ig)=>{ imgs.title = "Intrinsic size: "+imgs.naturalWidth + "×"+imgs.naturalHeight + "px"; } imgs.onclick = function() { window.open(imgs.src); } imgs.onmouseover = function(event) { let e = event.target; e.style = imgStyleHover; } imgs.onmouseout = function(event) { let e = event.target; e.style = imgStyle; } } } } } // 码云 Gitee if (location.host.indexOf("gitee.com") !== -1){ var arrs1 = document.querySelector('#git-project-content').getElementsByClassName('tree-holder')[0].getElementsByClassName('tree-table')[0].getElementsByClassName('five wide column tree-item-file-name tree-list-item'); if(document.getElementsByClassName('vbsNames').length > 0) { return false; } console.log(location.pathname,'目录,图片渲染完成,点击小图可在新窗口查看并保存图片') for (var j = 0; j < arrs1.length; j++) { let src1 = arrs1[j].getElementsByTagName('a')[0].href.replace('/blob/','/raw/'); if(matchSrc(src1)) { let imgs1 = document.createElement("img"); imgs1.style = imgStyle; imgs1.src = src1; imgs1.className = 'vbsNames'; arrs1[j].insertBefore(imgs1,arrs1[j].getElementsByTagName('a')[0]); //arrs1[j].appendChild(imgs1); imgs1.onload = ()=>{ imgs1.title = "Intrinsic size: "+imgs1.naturalWidth + "×"+imgs1.naturalHeight + "px"; } imgs1.onclick = function() { window.open(src1);} imgs1.parentNode.parentNode.onmouseover = function(event) { //let e = event.target; //e.style = imgStyleHover; imgs1.style = imgStyleHover; } imgs1.parentNode.parentNode.onmouseout = function(event) { //let e = event.target; //e.style = imgStyle; imgs1.style = imgStyle; } } } } }; } window.onLoad = setTimeout(()=>{ setInterval(()=>{loadImgs();},1000); },400)