我有一个 Ajax HTML 编辑器和它上面的一个下拉菜单。 从下拉列表中选择一个项目时,我希望将下拉列表中所选项目的文本粘贴到 AJAX HTML 编辑器中的当前光标位置。 有什么想法..?
最佳答案
是的,在第三天结束时,我终于找到了问题的解决方案,将其发布在这里,以便有人可以节省重新发明轮子的宝贵时间。
这是我的 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 编辑器位于更新面板内,因此在部分回发后脚本停止工作,我找到了帮助 here .
希望这也适合你...干杯..!!
关于html - 使用客户端脚本在 Ajax HTML 编辑器中的光标位置插入文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10509707/