您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
新增字体设置 调节分栏比例和图片展示大小
// ==UserScript== // @name 里屋Style // @namespace https://github.com/Particaly/ // @version 1.0.3 // @description 新增字体设置 调节分栏比例和图片展示大小 // @author J.S.Patrick // @match *://253874.net/* // @match *://www.253874.net/* // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; // ------------------ 公用 const cn_fonts = [ { name: 'Noto Sans SC', url: 'https://fonts.googleapis.com/css?family=Noto+Sans+SC', fontFamily: 'Noto Sans SC', type: 'link' }, { name: 'Ma Shan Zheng', url: 'https://fonts.googleapis.com/css?family=Ma+Shan+Zheng', fontFamily: 'Ma Shan Zheng', type: 'link' } ] const en_fonts = [ { name: 'UbuntuMono', url: 'https://font.onmicrosoft.cn/[email protected]/media/fonts/UbuntuMono/UbuntuMono-Regular.ttf', fontFamily: 'UbuntuMono', type: 'ttf'}, { name: 'VarelaRound', url: 'https://font.onmicrosoft.cn/[email protected]/media/fonts/VarelaRound/VarelaRound-Regular.ttf', fontFamily: 'VarelaRound', type: 'ttf' }, { name: 'Monaco', url: 'https://font.onmicrosoft.cn/[email protected]/media/fonts/Monaco/Monaco.ttf', fontFamily: 'Monaco', type: 'ttf'} ] const extra_style = ` html[data-darkreader-scheme=dark] body{ background: #fff; } ` const frame_ids = ['gb_top', 'gb_left', 'gb_right', 'gb_search'] function sleep(time) { return new Promise(resolve => { setTimeout(resolve, time) }) } // ------------------ // ------------------ 记录 frame 的尺寸 function getFrameSize() { return window.localStorage.getItem('frameset-size'); } function updateFrameSize() { const outerFrameSet = document.getElementById('gb_bodys'); const children = Array.from(outerFrameSet.children); const size = children.map(t => t.clientWidth).join(','); window.localStorage.setItem('frameset-size', size); return size; } function setFrameSize() { const outerFrameSet = document.getElementById('gb_bodys'); const size = getFrameSize() || updateFrameSize(); outerFrameSet.cols = size; } // --------------------------------------- // ------------------ 注入字体选项 function registerFontInjectionListener() { const handler = () => { if (window.location.href === 'https://www.253874.net/panel###') { const cnInput = document.querySelector('[name=font_cn]') const enInput = document.querySelector('[name=font_en]') cn_fonts.forEach(f => { if (!cnInput) return; const option = document.createElement('option'); option.value = f.fontFamily; option.innerText = f.name; cnInput.appendChild(option) }) en_fonts.forEach(f => { const option = document.createElement('option'); option.value = f.fontFamily; option.innerText = f.name; enInput.appendChild(option) }) const container = document.querySelector('[id=font_panel]'); container.addEventListener('change', () => { updateFont(); setFont(); }); } } window.addEventListener('hashchange', handler) } function getFont() { const str = window.localStorage.getItem('font'); try { return JSON.parse(str) } catch(e) { return null } } function setFont() { const css = getFont(); console.log('set font style', css) if (!css) return; const sheetContent = extra_style + ` body { font-family: ${css['font-family']}; font-size: ${css['font-size']}; line-height: ${css['line-height']}; } ` const sheet = document.createElement('style'); sheet.type = 'text/css'; sheet.innerText = sheetContent; document.head.appendChild(sheet); cn_fonts.concat(en_fonts).forEach(font => { if (css['font-family']?.includes(font.fontFamily)) { switch (font.type) { case "link": { const link = document.createElement('link'); link.rel = 'stylesheet'; link.href = font.url; document.head.appendChild(link); break; } case "ttf": { const sheet = document.createElement('style'); sheet.type = 'text/css'; sheet.innerText = `@font-face { font-family: '${font.fontFamily}'; src: url('${font.url}'); }`; document.head.appendChild(sheet); } } } }) } function updateFont(overwrite) { const $ = document.querySelector.bind(document); const font = []; const font_en = $('select[name=font_en]').value; const font_cn = $('select[name=font_cn]').value; const font_size = $('select[name="font_size"]').value; let css = {}; if (font_en.length > 0) { font.push(font_en); } if (font_cn.length > 0) { font.push(font_cn); } if (font.length > 0) { css['font-family'] = "'" + font.join("', '") + "', sans-serif"; } if (font_size > 0) { css['font-size'] = font_size + 'px'; css['line-height'] = '22px'; } window.localStorage.setItem('font', JSON.stringify(css)); } setFont() function darkMode() { const root = document.documentElement; const loop = dom => { // const style = dom.getComputed; // console.log() if (dom.children) { Array.from(dom.children).forEach(t => loop(t)); } } } window.addEventListener('load', function () { // 调整 frameset 宽度 const outerFrameSet = document.getElementById('gb_bodys'); if (outerFrameSet) { outerFrameSet.addEventListener('mousemove', e => { const children = Array.from(outerFrameSet.children); const size = children.map(t => t.clientWidth).join(','); if (size === getFrameSize()) return; updateFrameSize(); }); setFrameSize(); } registerFontInjectionListener(); const posts = document.querySelectorAll('.post_list'); posts.forEach(post => { const images = post.querySelectorAll('img'); images.forEach(img => { // 跳过gif表情包 if (img.src.toLowerCase().endsWith('.gif')) { return; } // 设置图片的初始高度,保持宽高比 img.style.height = '300px'; img.style.width = 'auto'; let originalHeight = img.naturalHeight; let originalWidth = img.naturalWidth; // 点击时切换图片大小 img.addEventListener('click', () => { if (img.style.height === '300px') { img.style.height = originalHeight + 'px'; img.style.width = originalWidth + 'px'; } else { img.style.height = '300px'; img.style.width = 'auto'; } }); }); }); }); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址