所有我需要的是能够检测当文字被放入一个textarea。然后我把文本和做的东西与它清除textarea的。可能有许多这些文本域的和非常高的UI的期望,所以轮询是最后的手段。

有关IE,“聚焦状态”是卓有成效的,因为用户滴东西进入textarea的后这个事件被触发。

对于Firefox,我无法找到工作的事件。我试过onmouseup和的onchange ..不知道还能从那里试试。我讨厌不得不轮询内容的文本区域。帮助非常感谢。感谢。

编辑:为了清楚起见,“下降”是指用户选择文本(通常)从页,但它并不重要,其中,拖动它,它落入textarea的。这是不一样的Ctrl + V键,或单击右键粘贴(这取检测的两种不同的方法,顺便说一句),或(显然)键入到文本区域。具体而言,它是拖放的“滴”的方面。我真的不知道该怎么句话吧。

我觉得这个问题是相当精确地陈述。幽默我,以为我指的是任何其他操作对你的所有选择与他人分享一个文本。如果我的意思是“粘贴”,你不觉得我会提到的的东西的关于我的问题的标题或内容粘贴?同样在一个textarea无二输入的。但是,也许,你都只是不知道我不够好,知道我输入了我的意思,而不是mistakingly打字的东西唯一有点关系到了我的意思。

有帮助吗?

解决方案 2

轮询似乎是唯一的道路要走。

在拖动+拖放操作,在浏览器中启动时,它似乎抵消了其他一切事情。您可以通过将“的onmouseover”事件上的东西在页面上,然后开始操作的DnD并拖曳它见证这一点。该事件将不会触发。

看来只能的浏览器如何将内部处理“拖放”,它导致的onfocus巧合(),用于在IE和Safari textarea的被解雇。我怀疑有在W3规范定义得多......这不是问题,W3是废话,再说没有人坚持它完全。

在我的问题,我说走光了每次使用后textarea的奢侈品,所以我觉得轮询:textarea.value.length> 0,几乎没有任何成本,不应该是太大的性能问题的

但是,唉,它特别具有有滴内容转换成一个textarea做。

下-MOD客场抚慰你的痛苦。

其他提示

对于Firefox,这对我的作品:

window.addEventHandler("dragdrop", function(event) {alert("Drop it like it's hot!")}, true)

不在Safari工作,但是。还没有尝试过IE。

如果你希望你的textarea反应的文本被丢弃,粘贴或打字,你唯一的解决方案将是一个按钮。即使是一个计时器轮询的内容不会帮你的。

您提到,您希望用户能够在文本区域键入文本。你提到要清除每当事件触发的文本。没有为浏览器知道用户已完成打字没有可能的方式。你必须依赖于特定的动作。

现在的放置或粘贴,你可以依靠鼠标松开和KeyUp事件,以检测。

你所说的“下降”是什么意思?你说的是糊状(^ V)运行?如果是这样阿隆的答案是确实是正确的,你会得到的keydown / KEYUP(和值将在KEYUP可读的)。

一个通用的回调会发生在任何更新的输入是“平变化” - 你可以试试。需要注意的是打字的时候,它不会被调用直到完成和无焦点的输入,因此,如果您需要在两个打字和其他形式的输入的即时更新,你仍然需要“的onkeyup”为好。

编辑再澄清:IMO“平变化”应该当拖动和放下使内容被添加到文本区被激发;我认为这是一个浏览器错误,这不是(在Firefox至少)。我只能在这种情况下同意在该投票站是你已经离开了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top