Twitch 聊天按钮未选择 javascript 设置值

问题描述

我正在制作一个 chrome 扩展程序,我需要为现有的 twitch 聊天添加更多功能

问题是,如果我通过 javascript 设置 textarea(抽搐聊天文本框)的值,然后允许用户按 Enter 或按“聊天”按钮,则发送到实时聊天的消息是不是我通过 JS 设置的消息,而是由用户输入的正在发送的消息。

例如,首先我使用以下代码定位文本区域:

chat_textBox = document.getElementsByClassName('chat-input__textarea')[0].children[0].childNodes[0]

现在,假设我将这个 textarea 的值和 innerHTML 设置如下:

chat_textBox.value = "Bitcoin"
chat_textBox.innerHTML = "Bitcoin"

假设这些值是在用户输入“Bit”而不是“Bitcoin”整个词时设置的。然后如果用户尝试按下回车键或单击“单击”按钮,即使此文本区域的值设置为“比特币”,但只有“比特”会被发送到实时聊天。

此外,当用户单击或悬停在此文本区域上时,我设置的值(“Bitcoin”)再次更改为“Bit”。所以,我假设有一些功能可以记录用户实际输入内容并不断替换它。

我想防止这种认行为弄乱我的自定义功能。我能做什么?

解决方法

根据您描述的行为,我假设 Twitch UI 正在侦听事件,以便在某处更新状态,然后从字段中读取值,当您以编程方式更新值时会错过该值。

因此,要解决此问题,您可以在更新 change 的值后手动触发 inputtextarea 事件。