2015-07-28 51 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。 –