我一直在努力使用textarea的selectionStart和selectionEnd属性,使它们与contenteditable div元素一起工作.我在谷歌和SO上检查了很多相关文章,但没有效果.我有一些类似于以下的工作,完美的textarea.但是我希望这个可以与contenteditable div一起工作.
function replaceVal(node,val,step){
    //...
    var cursorLoc =  node.selectionStart;
    node.value = node.value.substring(0,node.selectionStart - step) + value +
    node.value.substring(node.selectionEnd,node.value.length);
    node.scrollTop = scrollTop;
    node.selectionStart = cursorLoc + value.length - step;
    node.selectionEnd = cursorLoc + value.length - step;
  //...
}

这可以如何修改,以便它可以与contenteditable div元素而不是textarea一起使用?

解决方法

尝试这样,它返回所选的文本,无论是否内容可编辑.
function GetSelectedText() {

            if (document.getSelection) {    // all browsers,except IE before version 9
                var sel = document.getSelection();
                    // sel is a string in Firefox and Opera,// and a selectionRange object in Google Chrome,Safari and IE from version 9
                    // the alert method displays the result of the toString method of the passed object
                alert(sel);
            } 
            else {
                if (document.selection) {   // Internet Explorer before version 9
                    var textRange = document.selection.createrange();
                    alert(textRange.text);
                }
            }
        }
<div>Test Example Microsoft T-shirt Box</div>
<button onClick="GetSelectedText()">Get text</button>

我在jsfiddler中做出这个例子
enter link description here

jquery – selectionStart和selectionEnd在contenteditable元素中的更多相关文章

  1. 处理textarea中的换行和空格

    这篇文章主要介绍了处理textarea中的换行和空格,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. javascript textarea支持图形编辑

    本来以为只有iframe支持编辑了,今天突然发现textarea也支持编辑 :( 是不是我太愚钝了? textarea不能用innerHTML来插入html,而用appendChild

  3. JavaScript动态调整TextArea高度的代码

    通过JavaScript根据TextArea的内容动态调整TextArea的高度,需要的朋友可以参考下。

  4. div实现自适应高度的textarea实现angular双向绑定

    本文主要介绍了div实现自适应高度的textarea,实现angular双向绑定的方法。具有一定的参考价值,下面跟着小编一起来看下吧

  5. 关于textarea提交的内容无法换行的解决办法

    本篇文章小编为大家介绍,关于textarea提交的内容无法换行的解决办法,有需要的朋友可以参考一下

  6. jQuery编写textarea输入字数限制代码

    这篇文章主要为大家详细介绍了jQuery编写textarea输入字数限制代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  7. 从textarea中获取数据之后按原样显示实现代码

    从textarea中获取数据,按原样显示在某些特殊的情况下还是比较使实用的,下面为大家分享下实现代码,感兴趣的朋友可以参考下,希望对你有所帮助

  8. Vue中textarea自适应高度方案的实现

    本文主要介绍了Vue中textarea自适应高度方案的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  9. 获取 textarea 标签第n行的文字的js代码

    获取 textarea 标签第n行的文字的实现代码,非常的不错,兼容了firefox.

  10. javascript textarea字数限制

    网页中经常会用到的一些字数限制要求,下面的代码应该可以帮你解决这个问题,下面的代码不论是text和textarea效果都是一样的。

随机推荐

  1. jquery-plugins – 是否可以使用猫头鹰旋转木马实现循环/无限轮播?

    我正在使用猫头鹰旋转木马,它的工作完美,除了它不支持循环/无限滚动.我没有搜索google和stackoverflow的想法,没有运气.有没有人在猫头鹰旋转木马上实现圆形/无限滚动?

  2. jQuery动态输入字段焦点

    我想使用以下jQuery向我的页面动态添加一个输入字段:在这样做之后,我希望输入字段具有闪烁的文本光标的焦点,所以我想在创建后立即输入.有人可以告诉我我该怎么办?

  3. jquery – 为什么$(window).height()这样错了?

    我试图获取当前浏览器的视口高度,使用但我得到的价值观太低了.当视口高度高达850px时,我从height()获取大约350或400像素的值.这是怎么回事?

  4. jquery – 如果在此div之外和其他draggables内部(使用无效和有效的还原选项),则可拖动恢复

    例如这样但是由于明显的原因,这不行.我可以说这个吗?

  5. 创建一个jQueryUI 1.8按钮菜单

    现在jQueryUI1.8已经出来了,我正在浏览更新,并且遇到了新的Buttonwidget,特别是SplitButtonwithadropdown的演示之一.这个演示似乎表明Buttonwidget可以在这里创建一个下拉菜单.作为讨论的问题,我想知道使用这个新的Button小部件来创建一个下拉菜单有什么方法.干杯.解决方法您必须在按钮下方列出一个列表,方式类似于此处为自动完成提供的演示:http

  6. 灰色divs使用JQuery

    我试图使用这个代码:为了淡出一大堆名为MySelectorDiv的div,唯一的是,它只会淡出第一个而不是所有的div,为什么呢?

  7. 使用jQuery动态插入到列表中

    我有两个订单列表在彼此旁边.当我从一个列表中选出一个节点时,我想按照字母顺序插入到另一个列表中.抓住的是我想要把一个元素放在另一个列表中,而不刷新整个列表.奇怪的是,当我插入到右边的列表中,它工作正常,但是当我插入到左边的列表中时,顺序永远不会出来.我也尝试将所有内容读入数组,并将其排序在一起,以防止children()方法没有按照显示顺序返回任何东西,但是我仍然得到相同的结果.这是我的jQuer

  8. 没有回应MediaWiki API使用jQuery

    我试图从维基百科获取一些内容作为JSON:但我没有回应.如果我粘贴到浏览器的地址栏,就像我得到预期的内容.怎么了?解决方法您需要通过添加&callback=?来触发具有$.getJSON()的JSONP行为?在querystring上,像这样:Youcantestithere.没有使用JSONP,你正在击中same-originpolicy,阻止XmlHttpRequest获取任何数据.

  9. jQuery Ajax请求每30秒

    我有这段代码,但是有些人在我的网站上的值可能会改变.我需要每30秒钟更新一次#financediv.这可以做吗解决方法您可以将代码放在单独的函数中,如下所示:然后每30秒建立一个定时器调用该函数:祝你好运!总结以上是DEVMAX为你收集整理的jQueryAjax请求每30秒全部内容。如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  10. jquery – keypress事件在IE和Chrome中不工作,但在FF工作

    任何想法为什么会这样发生?我通常认为Chrome会更加宽容代码?这是我的按键键.我错过了什么吗?右图();和leftimage();是应该工作的功能,因为我在其他地方使用这些功能谢谢您的帮助!

返回
顶部