You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Tampermonkey脚本实现不切换标签页触发指定网页按钮点击

解决方案:使用Chrome扩展API实现跨标签页远程触发点击

之前的localStorage轮询方案失效,是因为浏览器会对非激活标签页的JavaScript执行进行节流(比如setInterval被大幅降低频率),导致无法及时响应。改用Chrome的chrome.tabs和chrome.runtime消息传递API可以绕过这个限制,主动唤醒目标标签页执行操作。

你需要创建一个Tampermonkey脚本,同时处理全局快捷键监听和目标页面的消息响应:

// ==UserScript==
// @name         YouTube Playlist Randomizer Remote Next
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Trigger "next" button on YouTube Playlist Randomizer via Alt+N from any tab
// @author       You
// @match        *://*/*
// @match        https://youtube-playlist-randomizer.bitbucket.io/*
// @grant        chrome.tabs
// @grant        chrome.runtime.onMessage
// @grant        chrome.runtime.sendMessage
// ==/UserScript==

(function() {
    'use strict';

    // 针对目标页面:监听远程点击指令
    if (window.location.href.startsWith('https://youtube-playlist-randomizer.bitbucket.io/')) {
        chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
            if (request.action === 'clickNext') {
                const nextButton = document.getElementById('next');
                nextButton?.click(); // 安全获取按钮并触发点击
            }
            return true; // 保持消息通道开放(可选)
        });
    } 
    // 针对其他页面:监听Alt+N快捷键,向目标页面发指令
    else {
        document.addEventListener('keydown', (e) => {
            // 匹配Alt+N(排除Ctrl/Shift组合)
            if (e.altKey && e.key === 'n' && !e.ctrlKey && !e.shiftKey) {
                e.preventDefault(); // 阻止默认按键行为

                // 查找已打开的目标页面标签
                chrome.tabs.query({ url: 'https://youtube-playlist-randomizer.bitbucket.io/*' }, (tabs) => {
                    if (tabs.length > 0) {
                        // 向第一个匹配的标签页发送点击指令
                        chrome.tabs.sendMessage(tabs[0].id, { action: 'clickNext' });
                    }
                });
            }
        });
    }
})();

关键说明:

  • 权限声明:@grant字段必须包含所需的Chrome API,否则Tampermonkey会限制脚本访问这些接口。
  • 消息传递:当你按下Alt+N时,全局部分的代码会找到目标页面的标签,通过chrome.tabs.sendMessage主动发送指令;目标页面的监听函数收到指令后,立即执行按钮点击操作——这个过程不受标签页激活状态影响,浏览器会临时唤醒后台标签处理消息。
  • 兼容性:该方案仅适用于基于Chromium的浏览器(Chrome、Edge等),因为使用了Chrome扩展API。

内容的提问来源于stack exchange,提问作者Ertogrul Hesenli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:50:56