附加到 reddit <textarea> 不会反映出来。只出现在 DOM

Appending to reddit <textarea>'s is not reflected. Only appears in DOM

我正在为《炉石传说》子版块编写 Chrome 扩展。

工作原理: 当用户在 Reddit 评论 <textarea> 中键入“[[”时,它会创建一个 <select>。用户从列表中选择一张卡片。

目标: 扩展程序应该将卡的名称添加到 <textarea> 中并带有 ']]',因此结果类似于 [[Dreadsteed]]。此格式适用于 /u/hearthscan-bot.

问题: 扩展确实将卡的名称添加到 <textarea>,但是,它仅反映在 DOM 中。 The text does not appear in the browser.

讨论: 我认为一定是 Reddit 使用的某些插件导致了这个问题。我觉得特别奇怪的是,如果你在评论 <textarea> 中输入任何内容,你将不会在 DOM 的任何地方看到它。如何让附加文本反映在浏览器中?

问题出在您的代码上。您不使用 append() 将文本添加到 input/textarea。您设置值。

// replaces it
$(HearthSearch_activeTextArea).value($(this).val());

// add to the end
var ta = $(HearthSearch_activeTextArea)
ta.value(ta.value() + $(this).val());

//or another way to do it without the extra varaible
$(HearthSearch_activeTextArea).val(function(i, text) {
  return text + quote;
});