如何正确获取textarea内容?

How to get textarea content properly?

我正在以浏览器扩展的形式进行文本到二进制的转换器。我有这个表格:

<textarea id="in"></textarea>
<textarea id="out" readonly></textarea>
<div id="buttons">
  <button id="convert">Convert</button>
  <button id="copy">Copy</button>
</div>

我想将转换后的文本从第一个文本区域插入到第二个文本区域中。这是脚本:

window.onload = function() {
  document.getElementById("convert").addEventListener("click", click());
};

function click() {

  // Getting the first textarea value

  var inputText = document.getElementById("in").value;
  var output = document.getElementById("out");

  // Testing if it's a binary or a text

  if (/^[0-1 ]*$/.test(inputText)) {
    output.value = binToText(inputText);
  }
  else {
    output.value = textToBin(inputText);
  }

}

问题是如果我写入第一个文本区域,它的值不会改变,所以 value 属性 returns 为空。而第二个文本区域没有显示任何内容。

我什么都试过了,还是不行。我做错了什么?

您没有正确绑定事件处理程序。单击按钮时实际上没有任何反应。

您必须将函数本身传递给 addEventListener,而不是它的 return 值:

document.getElementById("convert").addEventListener("click", click);
//                                                           ^^^^^