我有一个 Ajax HTML 编辑器和它上面的下拉菜单。在从下拉列表中选择一个项目时,我希望将下拉列表中所选项目的文本粘贴到 AJAX HTML 编辑器中的当前光标位置。有任何想法吗..?
问问题
3109 次
1 回答
3
是的,在第三天结束时,我终于找到了解决问题的方法,将其发布在这里,以便有人可以节省宝贵的时间来重新发明轮子。
这是我的 Ajax ATML 编辑器:
<Ajax:Editor ID="EdtrHTML" runat="server" />
我希望从下拉列表中选择的文本粘贴到 HTML 编辑器中的当前光标位置,所以我调用函数在下拉列表的“更改”事件上插入文本(InsertAtCursor)。
作为函数 InsertAtCursor 的参数,我传递了在呈现 HTML 编辑器时创建的 IFrame 的 ID。
$(document).ready(function () {
$('#<%:DropDownID.ClientID%>').change(function () {
var ddltext = $('#<%:DropDownID.ClientID%> option:selected').text();
var ddltext = ' [' + ddltext + '] '
InsertAtCursor(idofHTMLEditorIFrame, ddltext);//Function for Insertion
});
});
这是在 Ajax HTML 编辑器的光标位置从下拉列表中插入文本的功能。
function InsertAtCursor(myField, myValue) {
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
}
else if (myField.selectionStart == 0 || 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;
}
}
在我的情况下,我的 Ajax 编辑器位于更新面板内,因此在部分回发后脚本停止工作,我在这里找到了帮助。
希望这对你也有用......干杯..!!
于 2012-05-11T16:10:55.343 回答