Greasy Fork

Greasy Fork is available in English.

greasyfork&sleazyfork脚本页面适用于网址增强

脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并提示

当前为 2024-06-07 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==

// @name         greasyfork&sleazyfork脚本页面适用于网址增强

// @namespace    http://tampermonkey.net/

// @version      0.1

// @description  脚本详情页适用于网址不默认跳转搜索 转为可点击的文本链接并提示

// @author       人民的勤务员

// @match        https://*.greasyfork.org/zh-CN/scripts/*
// @license      MIT

// @grant        GM_registerMenuCommand

// ==/UserScript==
//脚本由ChatGpt生成,本人未做变动

(function() {

    'use strict';

    // Define an integer variable to control link behavior

    let linkBehavior = 0; // 0: prompt, 1: open text URL, 2: open modified URL

    // Get all dd elements with class 'script-show-applies-to'

    const ddElements = document.querySelectorAll('dd.script-show-applies-to ul.block-list.expandable > li');

    // Iterate over all dd elements

    ddElements.forEach(dd => {

        const link = dd.querySelector('a[title^="查看其他"]');

        const text = dd.textContent.trim();

        // Skip elements containing '*'

        if (text.includes('*')) {

            return;

        }



        // If there is an a tag, handle its click event

        if (link) {

            link.addEventListener('click', function(event) {

                event.preventDefault(); // Prevent default behavior

                handleLinkClick(text);

            });

        } else {

            // If no a tag exists, convert text to link

            const newLink = document.createElement('a');

            newLink.textContent = text;

            newLink.href = '#';

            newLink.addEventListener('click', function(event) {

                event.preventDefault(); // Prevent default behavior

                handleLinkClick(text);

            });

            dd.textContent = ''; // Clear original text content

            dd.appendChild(newLink); // Insert new link element

        }

    });

    // Function to handle link clicks

    function handleLinkClick(linkText) {

        if (linkBehavior === 0) {

            // Show confirmation dialog

            const userConfirmed = confirm(`是否在 ${location.host}搜索${linkText}?`);

            if (userConfirmed) {

                // User chose yes, open modified URL

                const newUrl = `https://${location.host}/zh-CN/scripts/by-site/${linkText}`;

                window.open(newUrl, '_blank');

            } else {

                // User chose no, open original text content

                const originalUrl = `https://${linkText}`;

                window.open(originalUrl, '_blank');

            }

        } else if (linkBehavior === 1) {

            // Open text URL

            const originalUrl = `https://${linkText}`;

            window.open(originalUrl, '_blank');

        } else if (linkBehavior === 2) {

            // Open modified URL

            const newUrl = `https://${location.host}/zh-CN/scripts/by-site/${linkText}`;

            window.open(newUrl, '_blank');

        }

    }

    // Add menu command to allow user to change link behavior

    GM_registerMenuCommand('设置链接行为', () => {

        const behaviorOptions = ['0. 弹出确认对话框', '1. 打开文本地址', '2. 打开 https://${location.host}/zh-CN/scripts/by-site/ 加上文本内容'];

        const selectedBehavior = prompt('请选择链接行为:\n' + behaviorOptions.join('\n'), linkBehavior);

        if (selectedBehavior !== null && !isNaN(selectedBehavior) && selectedBehavior >= 0 && selectedBehavior <= 2) {

            linkBehavior = parseInt(selectedBehavior);

            alert(`链接行为已设置为 ${linkBehavior}`);

        } else {

            alert('无效的选择,请选择 0, 1 或 2.');

        }

    });

})();