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

Tampermonkey脚本触发PLEX状态屏后页面持续刷新问题求助

解决PLEX状态屏脚本重复执行导致页面刷新的问题

你的核心问题是脚本在页面每次加载时都会重复触发点击操作,进而导致页面反复刷新。可以通过标记脚本执行状态的方式解决,确保脚本仅在会话内执行一次,同时适配设备重启后需要重新触发的需求。

具体方案

使用sessionStorage存储执行标记:

  • sessionStorage是浏览器会话级存储,关闭浏览器(设备重启)后会自动清空,刚好匹配你"重启设备后重新执行全流程"的需求
  • 脚本运行前先检查标记,若未执行过才触发点击操作,执行完成后设置标记

修改后的脚本

// ==UserScript==
// @name         status trigger
// @namespace    http://tampermonkey.net/
// @version      2023-12-07
// @description  Trigger Status Load (仅执行一次)
// @author       You
// @match        */PlantFloorVisual.aspx
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        none
// ==/UserScript==

function kioskGreen() {
    var button = document.getElementById("fltShop_Screen_Key_Link");
    button?.click(); // 可选:添加空值判断避免元素未加载时报错
    // click for dropdown.
}

function kioskBlue() {
    var button = document.getElementById("tr_3");
    button?.click(); // 可选:添加空值判断避免元素未加载时报错
    // Selection for status screen.
}

// 检查是否已执行过脚本
if (!sessionStorage.getItem('statusScreenLoaded')) {
    kioskGreen();
    setTimeout(kioskBlue, 1000);
    // 标记脚本已执行
    sessionStorage.setItem('statusScreenLoaded', 'true');
}

额外优化点

  • 添加button?.click()的空值判断,避免页面元素未加载完成时触发报错
  • 可根据实际页面加载速度,调整setTimeout的延迟时间,确保下拉菜单完全展开后再执行选择操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 22:36:00