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
相关产品推荐
相关产品推荐

