javascript做的一个发表表情,可惜输入框是textarea,我想把它改成div输入框。求帮忙~ 20
主要是我不知道在div输入框里面怎么获取和计算光标的位置(selectionStart),以下是js代码片段:vartc=document.getElementById(...
主要是我不知道在div输入框里面怎么获取和计算光标的位置(selectionStart),以下是js代码片段:
var tc = document.getElementById(textareaid);
if (options.popName) {
tc = window.frames[options.popName].document.getElementById(textareaid);
}
var pos = 0;
if (typeof document.selection != "undefined") {//IE
options.txtAreaObj.focus();
setCursorPosition(tc, cpos); //设置焦点
document.selection.createRange().text = faceText;
//计算光标位置
pos = getPositionForTextArea(tc);
} else {//火狐
//计算光标位置
pos = tc.selectionStart + faceText.length;
options.txtAreaObj.val(options.txtAreaObj.val().substr(0, tc.selectionStart) + faceText + options.txtAreaObj.val().substring(tc.selectionStart, tclen));
//options.txtAreaObj.html(options.txtAreaObj.html().substr(0, tc.selectionStart) + faceText + options.txtAreaObj.html().substr(tc.selectionStart, tclen));
}
---------------------------------------------------------------------------------------------------------------
textarea下的表情发表我已经做好了,我就想把它换成div输入框。愿意帮忙的Q我: 514158268.
无以为报,帮我改好的话我追加100分,非常感谢!!! 展开
var tc = document.getElementById(textareaid);
if (options.popName) {
tc = window.frames[options.popName].document.getElementById(textareaid);
}
var pos = 0;
if (typeof document.selection != "undefined") {//IE
options.txtAreaObj.focus();
setCursorPosition(tc, cpos); //设置焦点
document.selection.createRange().text = faceText;
//计算光标位置
pos = getPositionForTextArea(tc);
} else {//火狐
//计算光标位置
pos = tc.selectionStart + faceText.length;
options.txtAreaObj.val(options.txtAreaObj.val().substr(0, tc.selectionStart) + faceText + options.txtAreaObj.val().substring(tc.selectionStart, tclen));
//options.txtAreaObj.html(options.txtAreaObj.html().substr(0, tc.selectionStart) + faceText + options.txtAreaObj.html().substr(tc.selectionStart, tclen));
}
---------------------------------------------------------------------------------------------------------------
textarea下的表情发表我已经做好了,我就想把它换成div输入框。愿意帮忙的Q我: 514158268.
无以为报,帮我改好的话我追加100分,非常感谢!!! 展开
3个回答
展开全部
options.txtAreaObj.val(options.txtAreaObj.val().substr(0, tc.selectionStart) + faceText + options.txtAreaObj.val().substring(tc.selectionStart, tclen));
//options.txtAreaObj.html(options.txtAreaObj.html().substr(0, tc.selectionStart) + faceText + options.txtAreaObj.html().substr(tc.selectionStart, tclen));
如果没错的话,应该是把下面这个消除注释,上面那个注释掉,然后直接换div应该就可以了。
//options.txtAreaObj.html(options.txtAreaObj.html().substr(0, tc.selectionStart) + faceText + options.txtAreaObj.html().substr(tc.selectionStart, tclen));
如果没错的话,应该是把下面这个消除注释,上面那个注释掉,然后直接换div应该就可以了。
追问
呃,其实这个注释是我自己写上去的,经过测试是不行的,我也没把它删掉,只是作参考。
我搞了很久都没获取到光标的位置...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般都用iframe来做的吧,因为iframe有自己的window和document对象,selection不会混乱,至少你不用判断selection是不是在div上,额
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
div的属性contenteditable 可以让元素可输入
追问
这个我知道,我问的是怎么获取(设置)div里面光标的位置。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询