您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
方便在B站内查看各种图片的原图,支持动态、专栏
当前为
// ==UserScript== // @name Bilibili 哔哩哔哩查看原图 // @icon https://t.bilibili.com/favicon.ico // @namespace https://lolico.moe/ // @version 2.3.6 // @description 方便在B站内查看各种图片的原图,支持动态、专栏 // @author Jindai Kirin // @match https://t.bilibili.com/* // @match https://space.bilibili.com/* // @match https://www.bilibili.com/read/* // @license GPL-3.0 // @grant GM_addStyle // @run-at document-end // @require https://code.bdstatic.com/npm/[email protected]/dist/jquery.min.js // ==/UserScript== (function () { 'use strict'; const nextTick = () => new Promise(resolve => setTimeout(resolve)); if (location.hostname === 't.bilibili.com' || location.hostname === 'space.bilibili.com') { // 添加查看原图按钮 document.addEventListener( 'click', async ({ target }) => { const $target = $(target); // new if ( $target.hasClass('bili-album__preview__picture__img') || $target.parent().hasClass('b-img__inner') ) { const $imagesbox = $target.parents('.bili-album'); await nextTick(); if ($imagesbox.find('.bili-album__watch__control__option.raw-image').length) return; const $btn = $imagesbox.find('.bili-album__watch__control__option.full-screen'); const $newBtn = $($btn.prop('outerHTML').replace('大', '原')); $newBtn.addClass('raw-image'); $newBtn.on('click', () => { window.open( $imagesbox.find('.bili-album__watch__content img').attr('src').replace(/@.*$/, ''), '_blank' ); }); $btn.after($newBtn); } // old else if ($target.hasClass('img-content')) { const $imagesbox = $('.imagesbox:hover'); const $btn = await waitViewBtn($imagesbox); const $newBtn = $($btn.prop('outerHTML').replace('大', '原')); $newBtn.on('click', () => { window.open( $imagesbox.find('.boost-img img').attr('src').replace(/@.*?$/, ''), '_blank' ); }); $btn.after($newBtn); const removeBtn = () => $newBtn.remove(); $imagesbox.find('.bp-v-middle:contains(收起)').one('click', removeBtn); $imagesbox.find('.boost-img').one('click', removeBtn); } }, { capture: true } ); } else if (location.href.startsWith('https://www.bilibili.com/read/')) { GM_addStyle('img.normal-img,.card-image__image{cursor:pointer}'); // 专栏图片点击打开原图 $(document.body).on('click', 'img.normal-img', function () { window.open($(this).attr('src').replace(/@.*?$/, '')); }); // 专栏头图点击打开原图 $(document.body).on('click', '.card-image__image', function () { window.open( $(this) .css('background-image') .replace(/^url\(["']?/, '') .replace(/["']?\)$/, '') .replace(/@.*?$/, ''), '_blank' ); }); } /** * 等待查看大图按钮出现 * @param {JQuery<HTMLElement>} $imagesbox * @returns {JQuery<HTMLElement>} */ function waitViewBtn($imagesbox) { return new Promise(resolve => { const $btn = $imagesbox.find('.bp-v-middle:contains(查看大图)'); if ($btn.length > 0) { resolve($btn); return; } new MutationObserver((mutations, self) => { mutations.forEach(({ addedNodes }) => { if (addedNodes.length > 0 && addedNodes[0].className === 'boost-wrap') { self.disconnect(); resolve($imagesbox.find('.bp-v-middle:contains(查看大图)')); } }); }).observe($imagesbox[0], { childList: true }); }); } })();