划词视频解析

在网页上划词弹出视频播放按钮,点击按钮进行视频在线解析播放

// ==UserScript==
// @name        划词视频解析
// @namespace    http://rc.cq.cn/
// @version      1.0
// @description  在网页上划词弹出视频播放按钮,点击按钮进行视频在线解析播放
// @author       zlcqrc
// @match        *://*/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // 声明一个按钮变量,并创建一个按钮元素。
    const searchIcon = document.createElement('button');
    // 设置按钮的样式,包括位置、显示方式、背景颜色、文字颜色、边框、内边距和鼠标指针样式。
    searchIcon.style.position = 'absolute';
    searchIcon.style.display = 'none';
    searchIcon.style.backgroundColor = '#4CAF50';
    searchIcon.style.color = '#ffffff';
    searchIcon.style.border = 'none';
    searchIcon.style.padding = '10px 20px';
    searchIcon.style.cursor = 'pointer';

    // 为按钮添加点击事件监听器,当用户点击按钮时执行以下操作:
    // 1. 获取当前选中的文字。
    // 2. 如果选中的文字不为空,使用 im1907.top URL格式打开一个新的标签页进行视频解析播放。
    // 3. 清除当前的选中文字。
    // 4. 隐藏按钮。
    searchIcon.addEventListener('mousedown', function() {
        const selectedText = window.getSelection().toString();
        if (selectedText) {
            const url = `https://im1907.top/?jx=${encodeURIComponent(selectedText)}`;
            window.open(url, '_blank');
            clearSelection();
            searchIcon.style.display = 'none'; // 隐藏按钮
        }
    });

    // 将按钮添加到网页的body元素中。
    document.body.appendChild(searchIcon);

    // 当用户在网页上拖动鼠标选中文字时,如果选中的文字不为空,显示按钮,并根据鼠标位置定位按钮的位置。
    document.addEventListener('mouseup', function(e) {
        if (e.button === 0) {
            const selection = window.getSelection();
            if (selection.type === 'Range' && selection.toString().length > 0) {
                searchIcon.style.display = 'block';
                searchIcon.textContent = ('解析播放' + selection); // 为按钮设置初始文本内容
                searchIcon.style.top = `${e.pageY}px`;
                searchIcon.style.left = `${e.pageX}px`;
            } else {
                searchIcon.style.display = 'none';
            }
        }
    });

    // 这个函数用于清除当前选中的文字。它使用了window.getSelection()和document.selection两种方法来兼容不同的浏览器。
    function clearSelection() {
        if (window.getSelection) {
            if (window.getSelection().empty) {
                window.getSelection().empty();
            } else if (window.getSelection().removeAllRanges) {
                window.getSelection().removeAllRanges();
            }
        } else if (document.selection) {
            document.selection.empty();
        }
    }
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址