您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在User首頁與Tag首頁中自動展開;當作品包含多張圖片時自動展開(漫畫作品不受影響)
// ==UserScript== // @name Pixiv作品與首頁中自動點選「檢視全部」 // @name:en Pixiv Home and Artwork Page Auto-Click "View All" // @name:ja Pixivホームページおよび作品ページで「すべて表示」を自動クリック// @description 在User首頁與Tag首頁中自動展開;當作品包含多張圖片時自動展開(漫畫作品不受影響) // @description 在User首頁與Tag首頁中自動展開;當作品包含多張圖片時自動展開(漫畫作品不受影響) // @description:en Automatically expands on User Home and Tag Home pages; automatically expands artworks with multiple images (manga artworks are not affected). // @description:ja ユーザーホームページおよびタグホームページで自動的に展開します。複数の画像を含む作品では自動的に展開します(マンガ作品は影響を受けません)。 // @match https://www.pixiv.net/artworks/* // @match https://www.pixiv.net/en/artworks/* // @match https://www.pixiv.net/users/* // @match https://www.pixiv.net/en/artworks/* // @grant none // @version 1.1.2 // @icon https://www.google.com/s2/favicons?sz=64&domain=pixiv.net // @author Max // @namespace https://github.com/Max46656 // @license MPL2.0 // ==/UserScript== class ReadingStand { constructor() { this.notMangaTexts = ['查看全部', '檢視全部', 'すべて見る', 'Show all', '모두 보기']; this.setupUrlChangeListener(); } expandArtwork() { const viewAllButton = Array.from(document.querySelectorAll('button:not(:disabled)')) .find(btn => window.getComputedStyle(btn).display !== 'none' && this.notMangaTexts.some(text => btn.textContent.includes(text)) ); if (viewAllButton) { viewAllButton.click(); } } expandGallery() { const patterns = [ /(en\/users|users)\/[0-9]*$/, /(en\/tags|tags)\/[^\/]*$/, /(en\/users|users)\/[0-9]*\/request\/sent$/, ]; const currentUrl = self.location.href; const hasExpanded = /\/artworks\?p=\d+$/.test(currentUrl); if (!hasExpanded && patterns.some(pattern => pattern.test(currentUrl))) { self.location.href = currentUrl + '/artworks?p=1'; } } setupUrlChangeListener() { const delay = (n) => new Promise(r => setTimeout(r, n * 1000)); const oldPushState = history.pushState; history.pushState = function pushState() { const result = oldPushState.apply(this, arguments); window.dispatchEvent(new Event('pushstate')); window.dispatchEvent(new Event('locationchange')); return result; }; const oldReplaceState = history.replaceState; history.replaceState = function replaceState() { const result = oldReplaceState.apply(this, arguments); window.dispatchEvent(new Event('replacestate')); window.dispatchEvent(new Event('locationchange')); return result; }; window.addEventListener('popstate', () => { window.dispatchEvent(new Event('locationchange')); }); window.addEventListener("load", () => { window.dispatchEvent(new Event('locationchange')); }); window.addEventListener('locationchange', () => { delay(0.7).then(() => { this.expandArtwork(); this.expandGallery(); }); }); } } const JohnThePageTurner = new ReadingStand();