html - 使用客户端脚本在 Ajax HTML 编辑器中的光标位置插入文本

标签 html ajax editor cursor position

我有一个 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/

相关文章:

javascript - 是否可以在同时触发的多个事件上设置监听器?

HTML:什么 css 属性使按钮 "center"中的内容?

java - 有没有关于可伸缩 Web 应用程序(Java/Ajax/REST)的好书?

php - 如何使用来自 PHP 的 jQuery/AJAX 调用遍历 JSON 数组?

c# - 在 Chrome 中打开 Unity Scripting API Reference,而不是在 Visual Studio 浏览器中构建。

java - Eclipse 是否可以自动插入常见类的导入

javascript - javascript 中的 DRY 用于动态字段

javascript - 问题 : Horizontal scrolling effect with Skrollr

javascript - XMLHttpRequest - 发送文件?

java - 可以打开随机java源文件并提供智能感知的编辑器/IDE