【问题标题】:To copy the selected Text from a div to a text field on double click the Text要将选定的文本从 div 复制到文本字段,请双击文本
【发布时间】:2013-07-04 05:26:51
【问题描述】:

在我的应用程序中,我从目录中读取了文本文件并将其放置在 div 中,如下所述

     $pageText = fread($fh, 25000); ?>
     <div id="click">Hai
    <?php  echo nl2br($pageText);
      ?> </div>

现在我所做的是,单击 div 时,它会将 div 中的整个文本复制到文本字段,这是我的 javascript,它可以完美地复制整个 div,但现在我需要的是我想要在双击时仅将选定文本从 div 复制到文本字段

      <script type="text/javascript">
        $(document).ready( function() {
        $('#click').click(function() { 
        $("#txtMessage").insertAtCaret($(this).text());
        return false
         });

        });

       $.fn.insertAtCaret = function (myValue) {
       return this.each(function(){
       //IE support
       if (document.selection) {
       this.focus();
       sel = document.selection.createRange();
       sel.text = myValue;
       this.focus();
       }
        //MOZILLA / NETSCAPE support
        else if (this.selectionStart || this.selectionStart == '0') {
        var startPos = this.selectionStart;
        var endPos = this.selectionEnd;
        var scrollTop = this.scrollTop;
        this.value = this.value.substring(0, startPos)+           myValue+this.value.substring(endPos,this.value.length);            
this.focus();
this.selectionStart = startPos + myValue.length;
this.selectionEnd = startPos + myValue.length;
this.scrollTop = scrollTop;
       } else {
      this.value += myValue;
      this.focus();
      }
      });
      };
      </script>

【问题讨论】:

  • 喜欢将选定的文本复制到剪贴板吗??
  • 是的,我想是的。现在它会在单击时将 div 的整个文本复制到文本字段,但我只想复制 div 的选定文本或单击的单个单词。
  • 浏览此链接...可能会有所帮助stackoverflow.com/questions/400212/…
  • 我的脚本已经完美运行了
  • 双击时不会取消选择,至少对我来说是-> FIDDLE

标签: php javascript jquery yii


【解决方案1】:

这里是如何通过双击获取选定的文本,

更新:现在它也复制到最后一个焦点输入。

首先,您需要在双击文本之前设置焦点之一。

演示http://jsfiddle.net/yeyene/GYuBv/15/

$(document).ready(function () {
    $("input[type=text]").focus(function(){
        $("input[type=text]").removeClass('lastFocus');
        $(this).addClass('lastFocus');
    });
    
    $('#myDiv').dblclick(function() {  
        $('#selected').append(getSelectionText());
        $("input[type=text].lastFocus").val($("input[type=text].lastFocus").val()+getSelectionText());        
    });
});

function getSelectionText() {
    var text = "";
    if (window.getSelection) {
        text = window.getSelection().toString();
    } else if (document.selection && document.selection.type != "Control") {
        text = document.selection.createRange().text;
    }
    return text;
}

$.fn.insertAtCaret = function (myValue) {
    return this.each(function () {
        if (document.selection) {
            this.focus();
            sel = document.selection.createRange();
            sel.text = myValue;
            this.focus();
        }
        else if (this.selectionStart || this.selectionStart == '0') {
            var startPos = this.selectionStart;
            var endPos = this.selectionEnd;
            var scrollTop = this.scrollTop;
            this.value = this.value.substring(0, startPos) + myValue + this.value.substring(endPos, this.value.length);
            this.focus();
            this.selectionStart = startPos + myValue.length;
            this.selectionEnd = startPos + myValue.length;
            this.scrollTop = scrollTop;
        } else {
            this.value += myValue;
            this.focus();
        }
    });
};

【讨论】:

  • 它显示了选定的文本,我想在双击文本时将选定的文本复制到文本字段中。你对此有什么想法吗?
  • 检查我的更新答案并看到jsfiddle.net/yeyene/GYuBv/11/...this 只会得到一个选定的文本
  • 如果要附加所有选定的文本,请参阅jsfiddle.net/yeyene/GYuBv/12
  • 它在 Fiddle 中完美运行,但我无法在我的应用程序中正确使用 @yeyene
  • 能否请您在答案中添加它。
【解决方案2】:

试试这个:

$('#click').dblclick(function() {
    var text = '';
    if (window.ActiveXObject) {
        text = document.selection.createRange().htmlText;
    } else {
        text = getSelection().getRangeAt(0);
    }
    $("#txtMessage").insertAtCaret(text);
    return false;
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-12
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    相关资源
    最近更新 更多