怎么給javascript + div編輯框光標(biāo)位置插入表情文字等 怎么給javascript + div編輯框光標(biāo)位置插入表情...
代碼1:div 設(shè)置contenteditable等于true作為編輯框時(shí)的光標(biāo)位置插入文本
/**
*光標(biāo)位置插入
* 參數(shù)1 string 要插入的內(nèi)容
* 參數(shù)2 bool true 插入后選中插入內(nèi)容,false不選中
**/function pasteHtmlAtCaret(html, selectPastedContent) {
var sel, range;
if (window.getSelection) {
// IE9 and non-IE
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
// Range.createContextualFragment() would be useful here but is
// only relatively recently standardized and is not supported in
// some browsers (IE9, for one)
var el = document.createElement("div");
el.innerHTML = html;
var frag = document.createDocumentFragment(), node, lastNode;
while ( (node = el.firstChild) ) {
lastNode = frag.appendChild(node);
}
var firstNode = frag.firstChild;
range.insertNode(frag);
// Preserve the selection
if (lastNode) {
range = range.cloneRange();
range.setStartAfter(lastNode);
if (selectPastedContent) {
range.setStartBefore(firstNode);
} else {
range.collapse(true);
}
sel.removeAllRanges();
sel.addRange(range);
}
}
} else if ( (sel = document.selection) && sel.type != "Control") {
// IE < 9
var originalRange = sel.createRange();
originalRange.collapse(true);
sel.createRange().pasteHTML(html);
if (selectPastedContent) {
range = sel.createRange();
range.setEndPoint("StartToStart", originalRange);
range.select();
}
}
}
代碼2:textarea 光標(biāo)位置插入文本
//JQ 擴(kuò)展
(function ($) {
$.fn.extend({
insertAtCaret: function (myValue) {
var $t = $(this)[0];
if (document.selection) {
this.focus();
sel = document.selection.createRange();
sel.text = myValue;
this.focus();
} else{
if ($t.selectionStart || $t.selectionStart == '0') {
var startPos = $t.selectionStart;
var endPos = $t.selectionEnd;
var scrollTop = $t.scrollTop;
$t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length);
this.focus();
$t.selectionStart = startPos + myValue.length;
$t.selectionEnd = startPos + myValue.length;
$t.scrollTop = scrollTop;
} else {
this.value += myValue;
this.focus();
}
}
}
});
})(jQuery);
只貨19831748752: jsp給js傳值怎么傳 -
江東區(qū)螺旋: ______ 三種方法 1 直接在js代碼中嵌入<%=%>表達(dá)式 2通過el表達(dá)式${} 3間接方法 在jsp中調(diào)用js函數(shù)時(shí) 以參數(shù)的形式傳入
只貨19831748752: javascript中for in怎么用? -
江東區(qū)螺旋: ______ 1:解析: for...in 語句 對(duì)應(yīng)于一個(gè)對(duì)象的每個(gè),或一個(gè)數(shù)組的每個(gè)元素,執(zhí)行一個(gè)或多個(gè)語句. for (variable in [object | array])2:參數(shù) variable 必選項(xiàng).一個(gè)變量,它可以是 object 的任一屬性或 array 的任一元素. object, array 可選項(xiàng).要在其上...
只貨19831748752: 如何把jsp程序中的數(shù)據(jù)傳遞給JavaScript腳本使用 -
江東區(qū)螺旋: ______ 是可以這樣的.必須保證js執(zhí)行時(shí),頁面已經(jīng)正確返回.你可以在頁面的body中寫上 <%=map1%>,看看是否能夠顯示?既然是字符串的形式,應(yīng)該 var1 =“<%=map1%...
只貨19831748752: 怎么用JS給一個(gè)HTML元素增加一個(gè)屬性和值 -
江東區(qū)螺旋: ______ <select style="width: 120px;" id="dp" name="dp" value="-1" onchange="funAlert(this)"><br> <option value="-1" selected="selected"></option><br> <option value="1">WA1</option><br> <option value="2">OR2</option><...
只貨19831748752: 如何把java代碼嵌入到j(luò)avascript中 -
江東區(qū)螺旋: ______ 這是不可以的.javascript是在客戶端運(yùn)行的.JAVA是運(yùn)行于服務(wù)器端的.但是你可以使用AJAX向服務(wù)器發(fā)送請(qǐng)求.
只貨19831748752: 如何給JS添加上CSS?
江東區(qū)螺旋: ______ 在PHP文件的輸出方式用標(biāo)準(zhǔn)的javascript,document.write輸出.就行了.css定義定義在你調(diào)用JS的頁面
只貨19831748752: 如何在表單內(nèi)添加JS代碼給文本框賦值 -
江東區(qū)螺旋: ______ javascript有兩種方法可以添加文本框: 使用innerHTML將某個(gè)元素的內(nèi)容填充為文本框的HTML代碼 用createElement("input")創(chuàng)建input標(biāo)簽節(jié)點(diǎn)→setAttribute()設(shè)置文本框?qū)傩浴胊ppendChild()追加到一個(gè)已存在的元素
只貨19831748752: 怎么在java servlet 中給js 數(shù)組賦值 -
江東區(qū)螺旋: ______ JS是靜態(tài)HTML的一部分 你把所有的JS語句寫好了 當(dāng)成HTML靜態(tài)的標(biāo)簽一樣 發(fā)送給瀏覽器 比如 out.println("<script language=\"javascript\">"); out.println("function refresh()"); out.println("{"); out.println("frame_peop.location.reload();"); out.println("setTimeout(\"refresh()\",3000);"); out.println("}"); out.println("</script>") ;
/**
*光標(biāo)位置插入
* 參數(shù)1 string 要插入的內(nèi)容
* 參數(shù)2 bool true 插入后選中插入內(nèi)容,false不選中
**/function pasteHtmlAtCaret(html, selectPastedContent) {
var sel, range;
if (window.getSelection) {
// IE9 and non-IE
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = sel.getRangeAt(0);
range.deleteContents();
// Range.createContextualFragment() would be useful here but is
// only relatively recently standardized and is not supported in
// some browsers (IE9, for one)
var el = document.createElement("div");
el.innerHTML = html;
var frag = document.createDocumentFragment(), node, lastNode;
while ( (node = el.firstChild) ) {
lastNode = frag.appendChild(node);
}
var firstNode = frag.firstChild;
range.insertNode(frag);
// Preserve the selection
if (lastNode) {
range = range.cloneRange();
range.setStartAfter(lastNode);
if (selectPastedContent) {
range.setStartBefore(firstNode);
} else {
range.collapse(true);
}
sel.removeAllRanges();
sel.addRange(range);
}
}
} else if ( (sel = document.selection) && sel.type != "Control") {
// IE < 9
var originalRange = sel.createRange();
originalRange.collapse(true);
sel.createRange().pasteHTML(html);
if (selectPastedContent) {
range = sel.createRange();
range.setEndPoint("StartToStart", originalRange);
range.select();
}
}
}
代碼2:textarea 光標(biāo)位置插入文本
//JQ 擴(kuò)展
(function ($) {
$.fn.extend({
insertAtCaret: function (myValue) {
var $t = $(this)[0];
if (document.selection) {
this.focus();
sel = document.selection.createRange();
sel.text = myValue;
this.focus();
} else{
if ($t.selectionStart || $t.selectionStart == '0') {
var startPos = $t.selectionStart;
var endPos = $t.selectionEnd;
var scrollTop = $t.scrollTop;
$t.value = $t.value.substring(0, startPos) + myValue + $t.value.substring(endPos, $t.value.length);
this.focus();
$t.selectionStart = startPos + myValue.length;
$t.selectionEnd = startPos + myValue.length;
$t.scrollTop = scrollTop;
} else {
this.value += myValue;
this.focus();
}
}
}
});
})(jQuery);
相關(guān)評(píng)說:
江東區(qū)螺旋: ______ 三種方法 1 直接在js代碼中嵌入<%=%>表達(dá)式 2通過el表達(dá)式${} 3間接方法 在jsp中調(diào)用js函數(shù)時(shí) 以參數(shù)的形式傳入
江東區(qū)螺旋: ______ 1:解析: for...in 語句 對(duì)應(yīng)于一個(gè)對(duì)象的每個(gè),或一個(gè)數(shù)組的每個(gè)元素,執(zhí)行一個(gè)或多個(gè)語句. for (variable in [object | array])2:參數(shù) variable 必選項(xiàng).一個(gè)變量,它可以是 object 的任一屬性或 array 的任一元素. object, array 可選項(xiàng).要在其上...
江東區(qū)螺旋: ______ 是可以這樣的.必須保證js執(zhí)行時(shí),頁面已經(jīng)正確返回.你可以在頁面的body中寫上 <%=map1%>,看看是否能夠顯示?既然是字符串的形式,應(yīng)該 var1 =“<%=map1%...
江東區(qū)螺旋: ______ <select style="width: 120px;" id="dp" name="dp" value="-1" onchange="funAlert(this)"><br> <option value="-1" selected="selected"></option><br> <option value="1">WA1</option><br> <option value="2">OR2</option><...
江東區(qū)螺旋: ______ 這是不可以的.javascript是在客戶端運(yùn)行的.JAVA是運(yùn)行于服務(wù)器端的.但是你可以使用AJAX向服務(wù)器發(fā)送請(qǐng)求.
江東區(qū)螺旋: ______ 在PHP文件的輸出方式用標(biāo)準(zhǔn)的javascript,document.write輸出.就行了.css定義定義在你調(diào)用JS的頁面
江東區(qū)螺旋: ______ javascript有兩種方法可以添加文本框: 使用innerHTML將某個(gè)元素的內(nèi)容填充為文本框的HTML代碼 用createElement("input")創(chuàng)建input標(biāo)簽節(jié)點(diǎn)→setAttribute()設(shè)置文本框?qū)傩浴胊ppendChild()追加到一個(gè)已存在的元素
江東區(qū)螺旋: ______ JS是靜態(tài)HTML的一部分 你把所有的JS語句寫好了 當(dāng)成HTML靜態(tài)的標(biāo)簽一樣 發(fā)送給瀏覽器 比如 out.println("<script language=\"javascript\">"); out.println("function refresh()"); out.println("{"); out.println("frame_peop.location.reload();"); out.println("setTimeout(\"refresh()\",3000);"); out.println("}"); out.println("</script>") ;