Ace: Возможность отключить редактор

Созданный на 23 мая 2011  ·  18Комментарии  ·  Источник: ajaxorg/ace

Подобно атрибуту «отключено» текстового поля.

он будет аналогичен режиму только для чтения, только пользователь не сможет взаимодействовать с редактором. Таким образом, курсор и любые маркеры линий будут скрыты.
@gissues :{"заказ":73.29192546583863,"статус":"отставание"}

Самый полезный комментарий

А, теперь я вижу.
Но какая часть функций редактора должна быть отключена, зависит от конкретного варианта использования.
Я думаю, что выбор и возможность сфокусировать редактор не должны быть отключены ни в одном из этих случаев. Виртуальное окно просмотра будет полезно для отображения вывода, но выбор браузера не может с ним работать. А для примеров кода обычно приятно иметь возможность делать ctrl+a ctrl+c .

Чтобы скрыть курсор и выделение строк

editor.setOptions({
    readOnly: true,
    highlightActiveLine: false,
    highlightGutterLine: false
})
editor.renderer.$cursorLayer.element.style.opacity=0

сделать редактор недоступным для вкладок

editor.textInput.getElement().tabIndex=-1
 or
editor.textInput.getElement().disabled=true

чтобы отключить все ярлыки

editor.commands.commmandKeyBinding={}

также я могу добавить методы уничтожения для $mouseHandler и textInput, чтобы полностью их отключить.

Все 18 Комментарий

Это где-нибудь реализовано? Я также нашел бы эту функцию очень полезной.

Каков вариант использования для этого? Я не хочу добавлять это в ядро, так как оно редко используется и его легко реализовать.

Что-то типа

editor.container.style.pointerEvents="none"
editor.container.style.opacity=0.5 // or use svg filter to make it gray
editor.renderer.setStyle("disabled", true)
editor.blur()

или это

var cover = document.createElement("div")
editor.container.appendChild(cover)
cover.style.cssText = "position:absolute;\
top:0;bottom:0;right:0;left:0;\
background:rgba(150,150,150,0.5);\
z-index:100"
cover.addEventListener("mousedown", function(e){e.stopPropagation()}, true)

должно сработать.

Цель состоит не в том, чтобы сделать его визуально отключенным, а в том, чтобы лишить пользователя возможности взаимодействовать с ним. Т.е. они не могут управлять курсором (даже лучше, курсора не существует).
Это просто более строгий тип только для чтения, а не «отключено». Это было бы удобно при использовании редактора для отображения образцов кода или вывода запущенных программ на веб-странице. Хотя это может быть не идеальное использование редактора, его функции, такие как подсветка синтаксиса и общий приятный внешний вид, делают его привлекательным вариантом для подобных вещей.

Оба примера кода на самом деле этого не делают. Ни один из них не удаляет курсор, и хотя они довольно хорошо справляются с задачей, не позволяя пользователю управлять курсором, фокус можно переместить на вкладку в редакторе.

А, теперь я вижу.
Но какая часть функций редактора должна быть отключена, зависит от конкретного варианта использования.
Я думаю, что выбор и возможность сфокусировать редактор не должны быть отключены ни в одном из этих случаев. Виртуальное окно просмотра будет полезно для отображения вывода, но выбор браузера не может с ним работать. А для примеров кода обычно приятно иметь возможность делать ctrl+a ctrl+c .

Чтобы скрыть курсор и выделение строк

editor.setOptions({
    readOnly: true,
    highlightActiveLine: false,
    highlightGutterLine: false
})
editor.renderer.$cursorLayer.element.style.opacity=0

сделать редактор недоступным для вкладок

editor.textInput.getElement().tabIndex=-1
 or
editor.textInput.getElement().disabled=true

чтобы отключить все ярлыки

editor.commands.commmandKeyBinding={}

также я могу добавить методы уничтожения для $mouseHandler и textInput, чтобы полностью их отключить.

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

Кроме того, последняя строка кода выше, похоже, вообще не позволяет редактору отображать что-либо. :/

Кроме того, последняя строка кода выше, похоже, вообще не позволяет редактору отображать что-либо. :/

ты имеешь в виду editor.commands.commmandKeyBinding={} ? это было бы очень странно

Спасибо за это!

Спасибо, определенно нужна возможность сделать редактор отключенным!

Привет, ты реализовал уничтожитель $mouseHandler? Я немного потерялся (новичок здесь). Или есть способ его отключить? Кстати, спасибо за отключение редактора :-)

@найтвинг
editor.renderer.$cursorLayer.element.style.opacity=0
Кажется, $cursorLayer теперь не является атрибутом VirtualRenderer.
Я хочу скрыть курсор, когда мой редактор находится в состоянии «Только для чтения», и я пробую указанный вами метод, но он не работает по той причине, что $cursorLayer не является атрибутом VirtualRenderer; есть ли другой способ скрыть курсор?

Я обнаружил, что в VirtualRenderer есть два метода: hideCursor() и setCursorStyle(), и я пытаюсь использовать их ниже. Но это тоже не работает.
this._editor.renderer.hideCursor();
this._editor.renderer.setCursorStyle("Непрозрачность: 0;");
Я ошибаюсь в использовании?

Работа продолжается? Я хотел бы отключить редактор, когда фокус выходит из него.

То же самое! Я хотел бы использовать метод renderer.hideCursor(), но он не работает. Я пытался вызвать его в блоке инициализации моего редактора и в событии changeCursor , но не могу заставить его работать.

для людей, которые все еще хотят отключить курсор, используйте свойство css3 pointer-events: none; в элементе редактора.

Как отключить редактор, все еще новый разработчик реакции? Пожалуйста, будем признательны за любую помощь

для людей, которые все еще хотят отключить курсор, используйте свойство css3 pointer-events: none; в элементе редактора.

Как отключить редактор?

для людей, которые все еще хотят отключить курсор, используйте свойство css3 pointer-events: none; в элементе редактора.

Как отключить редактор?

editor.setOptions({
    readOnly: true,
})

Работал как шарм

В среду, 23 сентября 2020 г., 22:27 .
написал:

для людей, которые все еще хотят отключить курсор, используйте свойства css3 pointer-events:
никто; в элементе редактора.

Как отключить редактор?

editor.setOptions({
только для чтения: правда,
})


Вы получаете это, потому что вы прокомментировали.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/ajaxorg/ace/issues/266#issuecomment-698073286 или
отписаться
https://github.com/notifications/unsubscribe-auth/ALIR2LMEV5BHDXPXO7RT5BTSHKVAPANCNFSM4AESJK3A
.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги