2015-07-28 88 views
4

我早先在堆栈溢出时已经问过这个问题,但没有得到答案。我有2个链接,称为添加表情符号1并添加表情符号2. 这是我的问题。 Insert smiley at cursor position在光标处插入表情符

现在,即使当我做了一些改变,这里的问题是笑脸只能插在div的末尾而不是在光标位置。 我的新的演示是:https://jsfiddle.net/ftwbx88p/8/

$(document).on("click" , "#button" , function() { 
    $(".editable.focus").append('<img src="https://cdn.okccdn.com/media/img/emojis/apple/1F60C.png"/>'); 
}); 

我想笑脸在各自CONTENTEDITABLE格在以往任何时候光标插入。提前致谢。

Note: I had a contenteditable div where I want to add image and not in the textarea.

回答

0

请从下面的代码行,这将解决您的查询。

function insertAtCursor(myField, myValue) { 
    //IE support 
    if (document.selection) { 
     myField.focus(); 
     sel = document.selection.createRange(); 
     sel.text = myValue; 
    } 
    //MOZILLA and others 
    else if (myField.selectionStart || myField.selectionStart == '0') { 
     var startPos = myField.selectionStart; 
     var endPos = myField.selectionEnd; 
     myField.value = myField.value.substring(0, startPos) 
      + myValue 
      + myField.value.substring(endPos, myField.value.length); 
    } else { 
     myField.value += myValue; 
    } 
} 

而且它的Insert text into textarea at cursor position (Javascript)

可能重复,请查看上面的链接为

+1

从哪里可以找到myField,myValue - 函数的参数@Amit Chhangani –

+1

或什么是sel?此答案缺乏丰满度 – jackjop

+0

myField是您必须插入表情符号的“div”,myValue是要插入表情符号的链接。详情请点击链接。它的工作方式与textarea一样。 –

0

我已经测试此代码为文本框id为txtUserName.Its工作,只要你想

细节

代码:

$(document).on("click", "#button1", function() { 
     var cursorPosition = $("#txtUserName")[0].selectionStart; 
     var FirstPart = $("#txtUserName").val().substring(0, cursorPosition); 
     var NewText = " New text "; 
     var SecondPart = $("#txtUserName").val().substring(cursorPosition + 1, $("#txtUserName").val().length); 
     $("#txtUserName").val(FirstPart+NewText+SecondPart); 
    }); 
+0

它不工作@Muhammad Atif在我的代码。我不想使用表单元素。我正在使用div。 –