Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 要将选定文本从div复制到文本字段,请双击该文本_Php_Javascript_Jquery_Yii - Fatal编程技术网

Php 要将选定文本从div复制到文本字段,请双击该文本

Php 要将选定文本从div复制到文本字段,请双击该文本,php,javascript,jquery,yii,Php,Javascript,Jquery,Yii,在我的应用程序中,我从一个目录中读取文本文件,并将其放置在一个div中,如下所述 $pageText = fread($fh, 25000); ?> <div id="click">Hai <?php echo nl2br($pageText); ?> </div> $pageText=fread($fh,25000);?> 海 现在我所做的是,点击div,它会将div中的整个文本复制到一个文本字段,这是我的

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

     $pageText = fread($fh, 25000); ?>
     <div id="click">Hai
    <?php  echo nl2br($pageText);
      ?> </div>
$pageText=fread($fh,25000);?>
海
现在我所做的是,点击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>

$(文档).ready(函数(){
$('#click')。单击(函数(){
$(“#txtMessage”).insertcaret($(this.text());
返回错误
});
});
$.fn.insertcaret=函数(myValue){
返回此值。每个(函数(){
//IE支持
if(文档选择){
这是focus();
sel=document.selection.createRange();
sel.text=myValue;
这是focus();
}
//MOZILLA/NETSCAPE支持
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);
这是focus();
this.selectionStart=startPos+myValue.length;
this.selectionEnd=startPos+myValue.length;
this.scrollTop=scrollTop;
}否则{
this.value+=myValue;
这是focus();
}
});
};

以下是如何通过双击获取所选文本

更新:现在它还复制到最后一个焦点输入。 首先,您需要在双击文本之前设置其中一个输入的焦点

演示

试试这个:

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

就像将选定的文本复制到剪贴板一样,是吗?是的,我想是的..现在它会在单击时将div的整个文本复制到文本字段,但我只想在单击的位置复制div的选定文本或单个单词。浏览此链接。。。可能会有帮助我的脚本已经运行得很好了我只想知道我想在哪里更正代码以便复制选定的文本。你能猜到那个家伙吗..当你双击时,不会取消选择吗,至少对我来说会->它显示所选文本我想双击文本将所选文本复制到文本字段。你对此有什么想法吗?检查我的更新答案,查看将只获得一个所选文本如果你想附加所有所选文本,请看,它在Fiddle中可以完美地工作,但我无法在我的应用程序@YeYeNec中正确使用它。请将它添加到答案中。
$('#click').dblclick(function() {
    var text = '';
    if (window.ActiveXObject) {
        text = document.selection.createRange().htmlText;
    } else {
        text = getSelection().getRangeAt(0);
    }
    $("#txtMessage").insertAtCaret(text);
    return false;
});