возвратить фокус contenteditable после execCommand?

Konrad корректен. В случае включения непрерывных диапазонов целых чисел (например, где у Вас есть случай 0, случай 1, случай 2.. случай n), компилятор может сделать что-то еще лучше, потому что это не должно даже создавать хэш-таблицу; это просто хранит массив указателей функции, и таким образом может загрузить его цель перехода в постоянное время.

13
задан FurtiveFelon 22 August 2009 в 17:08
поделиться

4 ответа

Вы можете сохранить последний выбранный элемент в переменной, а затем вызвать для него .focus () после выполнения .execCommand . Что-то вроде этого, я полагаю:

 $(function(){
        $('p.editable').click(function() {
            var clickedItem = $(this);
            clickedItem.attr('contenteditable', true).focus();
            $('#bold').click(function (){
                    document.execCommand('bold', false, true);
                    clickedItem.focus();
            });
        });
    });

Таким образом вы также можете удалить атрибут "contenteditable" из разметки ...

HTH

1
ответ дан 2 December 2019 в 00:18
поделиться

HTML:

<button onclick="doRichEditCommand('bold')" style="font-weight:bold;">B</button>

JavaScript:

function doRichEditCommand(aName, aArg){
    getIFrameDocument('editorWindow').execCommand(aName,false, aArg);
    document.getElementById('editorWindow').contentWindow.focus()
}

Ссылка может вам помочь:

https : //developer.mozilla.org/en/Rich-Text_Editing_in_Mozilla

1
ответ дан 2 December 2019 в 00:18
поделиться

Вы можете просто использовать функцию jQuery .focus (), чтобы сфокусировать его. Это должно работать:

var current;
$(function(){
    $("p[contenteditable]").focus(function() {
        current = this;
    });

    $('#bold').click(function (){
            document.execCommand('bold', false, true);
            $(current).focus();
    });
});

Это просто отслеживает текущее редактируемое поле каждый раз, когда он фокусируется пользователем, и при нажатии жирной кнопки фокус возвращается обратно в это поле.

4
ответ дан 2 December 2019 в 00:18
поделиться

ВЫ ДОЛЖНЫ ИСПОЛЬЗОВАТЬ .contents()

var current;
$(function(){
    $("p[contenteditable]").focus(function() {
        current = this;
    });

    $('#bold').click(function (){
            document.execCommand('bold', false, true);
            $(current).contents().focus();
    });
});
9
ответ дан 2 December 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: