gpt4 book ai didi

javascript - 如何在 Chrome 的文本区域中选择 "replace"文本范围?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:20:11 26 4
gpt4 key购买 nike

我正在尝试使用 Javascript 替换 Chrome 中任意选定的 TEXTAREA 节点中的选定文本(!不是内容可编辑的 div!)我看到在很多地方重复替换选定文本的代码片段基本上是这样做的:

var sel = window.getSelection();
var range = sel.getRangeAt(0);
range.insertNode( document.createTextNode("test "));

但是,这不适用于 TEXTAREA 或 INPUT TYPE=TEXT 等输入字段。文本被插入到 TEXTAREA 之前而不是里面。

还有一种替代方法可以使用 textarea.selectionStart 和 textarea.selectionEnd 修改文本区域内的选择文本。然而,这些需要弄清楚哪个 textarea 元素实际上是事件的/被选中的。 Chrome/Webkit document.activeElement 好像坏了,坏了好久了。我想不出任何解决方法来找到“当前选择的文本区域”。在这里查看错误...

http://code.google.com/p/chromium/issues/detail?id=14436

您可以在此处看到我试图解决的问题的微型演示。

http://dj1.willowmail.com/~jeske/_drop/insertIssue/1.html

http://ajaxandxml.blogspot.com/2007/11/emulating-activeelement-property-with.html

对此有什么想法吗?

给定一个在任意 TEXTAREA 节点中选择了任意文本的网页,如果事先不知道焦点位于哪个文本区域,我如何找到事件文本区域并将所选文本替换为其他文本?

(( 仅供引用:我在 Chrome 扩展程序中使用此代码。页内 javascript 内容脚本正在扩展页面 javascript,所以我不知道提前的页面结构是什么。它需要为任何网页。))

最佳答案

我认为您可能遇到的问题是,在代码运行之前单击按钮会导致事件元素发生变化。如果您改为使用 mousedown 事件并阻止默认按钮操作,它在 Chrome 中工作正常:

http://jsfiddle.net/b3Fk5/2/

关于javascript - 如何在 Chrome 的文本区域中选择 "replace"文本范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11973525/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com