我正在制作一个更改twitch.tv设置的脚本
当我需要检查切换按钮是否被选中时,这就足够简单了。但是每次加载页面时,用于捕获.checked上的true和false值的方法名称都会发生变化。
var latencyButton = document.getElementsByClassName("tw-toggle__input")[0];
if(latencyButton.__reactEventHandlers$kupq2smnamk.checked)
latencyButton.click();
console.log("Latency Changed");
}这是__reactEventHandlers$(这一部分)的变化,所以我有一些东西可以开始。
编辑:添加切换按钮周围的HTML
<div data-test-selector="low-latency-toggle" class="tw-align-items-center tw-flex"><label class="tw-drop-down-menu-input-item__label tw-flex-grow-1 tw-mg-r-2" for="f8960cb3c79352dd6dd718358e42a812">Low Latency</label><div class="tw-toggle" data-test-selector="low-latency-toggle"><input type="checkbox" class="tw-toggle__input" id="f8960cb3c79352dd6dd718358e42a812" data-a-target="tw-toggle"><label for="f8960cb3c79352dd6dd718358e42a812" class="tw-toggle__button"><p class="tw-hide-accessible">Low Latency</p></label></div></div>有没有办法在没有方法名称的情况下获得校验值?或者像获取方法名称以在变量中使用的方法?
感谢你抽出时间来-Crysal
发布于 2020-09-30 15:37:01
您可以尝试使用filter和indexOf来查找函数名。类似于:
let el = document.querySelector(".tw-toggle__input");
let reactHandlerName = Object.keys(el).filter((item) => item.indexOf('__reactEventHandlers')>=0);
let reactHandler = el[reactHandlerName[0]]; // this should be the function namehttps://stackoverflow.com/questions/64132669
复制相似问题