如何获取在 javascript 中更改名称的方法

How to get method that changes name in javascript

我正在制作一个脚本来更改 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>

有没有办法在没有方法名的情况下获取选中的值?或者喜欢获取方法名称以在变量中使用的方法?

谢谢你的时间 -水晶

您可以尝试使用 filterindexOf 来查找函数名称。类似于:

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 name