javascript – 如何在Chrome中的textarea中“替换”所选文本范围?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何在Chrome中的textarea中“替换”所选文本范围?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1352字,纯文字阅读大概需要2分钟。
内容图文
![javascript – 如何在Chrome中的textarea中“替换”所选文本范围?](/upload/InfoBanner/zyjiaocheng/777/ec3bdb7efd4747e98f43d0715bb4685f.jpg)
我正在尝试使用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似乎已被打破并且已经被打破了很长时间.我找不到任何解决方法来找到“当前选择的textarea”.看到这里的错误……
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节点中选择了任意位文本的网页,如果不提前知道焦点所在的textarea,如何找到活动文本区域并用其他文本替换所选文本?
((仅供参考:我在Chrome扩展程序中使用此代码.页内javascript内容脚本正在扩展页面javascript,所以我不知道页面结构是什么.它需要适用于任何网页. ))
解决方法:
我认为您可能遇到的问题是,在代码运行之前单击按钮会导致活动元素发生更改.如果你改为使用mousedown事件并阻止默认按钮操作,它在Chrome中运行正常:
内容总结
以上是互联网集市为您收集整理的javascript – 如何在Chrome中的textarea中“替换”所选文本范围?全部内容,希望文章能够帮你解决javascript – 如何在Chrome中的textarea中“替换”所选文本范围?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。