locked
Agregar texto en la posición del cursor en un html editor ajax RRS feed

  • Pregunta

  • Hola amigos, esta es mi primera pregunta en el foro espero me puedan ayudar. resulta que estoy utilizando un html editor de ajax; lo que necesito es agregar a través de unos botones, texto en la posición en que se encuentre el cursor ya que utilizo esta instrucción  editor1.content=editor1.content + Texto, pero siempre me lo va a ubicar al final del texto que se encuentra en el editor y la idea es que los usuarios puedan hacerlo en cualquier lugar del texto que se encuentre en el control, hay alguna forma de hacer esto.... de antemano muchas gracias y espero posibles soluciones gracias.... (estoy desarrollando en vb.net 2010)
    lunes, 18 de febrero de 2013 23:02

Respuestas

Todas las respuestas

  • Te comento que encontré un código javascritp que te podría ayudar a resolver esta situación.

    http://www.subgurim.net/Articulos/ajax-y-javascript/118/posicion-del-cursor-dentro-de-un-texto.aspx

    Espero que te sea útil.


    Juan Jose Gazzola

    • Propuesto como respuesta Juan Jose Gazzola jueves, 21 de febrero de 2013 11:40
    • Marcado como respuesta Omar Ortiz miércoles, 12 de junio de 2013 19:46
    jueves, 21 de febrero de 2013 11:40
  • Hola juan, gracias por tu respuesta estuve analizando el código, pero lo que necesito es agregar texto a través de unos linkButton que tengo en un gridview en la posición que se encuentre el cursor en un HtmlEditor. encontré unos códigos en javascript que es mas o menos como yo necesito pero la verdad no comprendo mucho el código y como implementarlos exactamente paso a paso en el mio, si alguien me ayudaría como hacer para que al hacer click en un linkButton se añada el texto deseado estaría muy agradecido. estos son los codigos: http://stackoverflow.com/questions/10509707/insert-text-at-cursor-position-in-ajax-html-editor-using-client-script/10554972#10554972

    $(document).ready(function () {
                $('#<%:DropDownID.ClientID%>').change(function () {
                var ddltext = $('#<%:DropDownID.ClientID%> option:selected').text();
                var ddltext = ' [' + ddltext + '] '
                InsertAtCursor(idofHTMLEditorIFrame, ddltext);//Function for Insertion
            });
        });
    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;
            }
        } 

    http://forums.asp.net/t/1497047.aspx/1

    // get the Editor's client-side object
    var editor = $find("<%= myEditor.ClientID %>");
    // get the EditPanel
    var editPanel = editor.get_editPanel();
    // if the current mode is 'Design'
    if (editPanel.get_activeMode() == AjaxControlToolkit.HTMLEditor.ActiveModeType.Design) {
    
    // get the DesignPanel's object
    var designPanel = editPanel.get_activePanel();
    // For 'Undo'
    designPanel._saveContent();
    // What to do - insert some text at current selection
    //---------------------------------------------------
    designPanel.insertHTML("[Name]");
    //---------------------------------------------------
    // Notify Editor about content changed and update toolbars linked to the edit panel
    setTimeout(function() { designPanel.onContentChanged(); editPanel.updateToolbar(); }, 0);
    // Ensure focus in design panel
    designPanel.focusEditor();
    }



    • Editado ricard023 jueves, 7 de marzo de 2013 17:16
    jueves, 7 de marzo de 2013 17:07