jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用jquery / javascript在div中进行选择大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_616_1@
有很多代码可以在页面中进行选择,@H_197_5@但是我想要一个代码获取div中的选择,@H_197_5@如果选择在我的div之外,则该函数必须返回空字符串;

一个jquery插件只适用于textarea而不是div. (here)@H_197_9@

谢谢@H_197_9@

解决方法

由于冗长的边界比较,以及因为IE采用与其他浏览器不同的方法,但在所有主流浏览器中都能完成这项任务,因此这有点冗长.它还可以处理Firefox中的多个选择.

jsfiddlehttp://jsfiddle.net/Q982A/2/@H_197_9@

码:@H_197_9@

function getSELEctedTextWithin(el) {
    var SELEctedText = "";
    if (typeof window.getSELEction != "undefined") {
        var sel = window.getSELEction(),rangeCount;
        if ( (rangeCount = sel.rangeCount) > 0 ) {
            var range = document.createRange();
            for (var i = 0,selRange; i < rangeCount; ++i) {
                range.SELEctNodeContents(el);
                selRange = sel.getRangeAt(i);
                if (selRange.compareBoundaryPoints(range.START_TO_END,rangE) == 1 && selRange.compareBoundaryPoints(range.END_TO_START,rangE) == -1) {
                    if (selRange.compareBoundaryPoints(range.START_TO_START,rangE) == 1) {
                        range.setStart(selRange.startContainer,selRange.startOffset);
                    }
                    if (selRange.compareBoundaryPoints(range.END_TO_END,rangE) == -1) {
                        range.setEnd(selRange.endContainer,selRange.endOffset);
                    }
                    SELEctedText += range.toString();
                }
            }
        }
    } else if (typeof document.SELEction != "undefined" && document.SELEction.type == "Text") {
        var selTextRange = document.SELEction.createRange();
        var textRange = selTextRange.duplicate();
        textRange.movetoElementText(el);
        if (selTextRange.compareEndPoints("EndToStart",textRangE) == 1 && selTextRange.compareEndPoints("StartToEnd",textRangE) == -1) {
            if (selTextRange.compareEndPoints("StartToStart",textRangE) == 1) {
                textRange.setEndPoint("StartToStart",selTextRangE);
            }
            if (selTextRange.compareEndPoints("EndToEnd",textRangE) == -1) {
                textRange.setEndPoint("EndToEnd",selTextRangE);
            }
            SELEctedText = textRange.text;
        }
    }
    return SELEctedText;
}

或者,您可以使用我的Rangy库,代码变为:@H_197_9@

function getSELEctedTextWithin(el) {
    var SELEctedText = "";
    var sel = rangy.getSELEction(),rangeCount = sel.rangeCount;
    var range = rangy.createRange();
    range.SELEctNodeContents(el);
    for (var i = 0; i < rangeCount; ++i) {
        SELEctedText += sel.getRangeAt(i).intersection(rangE);
    }
    return SELEctedText;
}

大佬总结

以上是大佬教程为你收集整理的如何使用jquery / javascript在div中进行选择全部内容,希望文章能够帮你解决如何使用jquery / javascript在div中进行选择所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。