Как сделать отделение с мерцающим курсором и доступным для редактирования текстом, не используя <вход>?

В конечном счете все регулярные выражения ожидают получить инвокант типа Match или некоторый подкласс Match. В Perl 6 инвокант - это просто первый аргумент, и он не является чем-то особенным.

Те регулярные выражения, объявленные с помощью rule, token или regex внутри пакета, будут установлены как методы для этого пакета. Наиболее типично, они объявлены в grammar, который является не чем иным как class, чей родитель по умолчанию - Grammar, а не Any. Grammar является подтипом Match.

grammar G {}.^mro.say # ((G) (Grammar) (Match) (Capture) (Cool) (Any) (Mu))

Таким образом, вполне естественно рассматривать их как просто методы, но с телом, написанным на другом языке. На самом деле, это именно то, что они есть.

Немного сложнее увидеть, как анонимные регулярные выражения являются методами, поскольку они не устанавливаются в таблицу методов любого типа. Однако, если мы напишем:

class C {
    method foo() { 42 }
}
my $m = anon method () { self.foo }
say C.$m()

Тогда мы увидим, что мы можем разрешить символы в инвоканте через self, даже если этот метод фактически не установлен в классе C. То же самое с анонимными регулярными выражениями. Причина, по которой это имеет значение, заключается в том, что утверждения типа <ident>, <.ws>, <?before foo> и друзья фактически скомпилированы в вызовы методов.

Таким образом, анонимные регулярные выражения, являющиеся методами, и, таким образом, трактующие свой первый аргумент как инвокант, позволяют разрешать различные встроенные правила, объявленные в Match.

11
задан SilentGhost 19 May 2009 в 11:52
поделиться

5 ответов

Элемент DIV имеет (а также другие элементы) свойство contentEditable , которое вы можете установить в Javascript в значение true.

getElementById('YourDiv').contentEditable = true;
13
ответ дан 3 December 2019 в 05:36
поделиться

Вы можете сделать div доступным для редактирования, установив его атрибут / свойство contentEditable на правда . Однако для чего-либо, что немного более мощно или гибко, чем очень простое редактирование, вы можете посмотреть на существующие решения, такие как:

5
ответ дан 3 December 2019 в 05:36
поделиться

I Предлагаю вам использовать текстовое поле, а если этого недостаточно, используйте редактор WYSIWYG, например tinyMCE или FCKeditor.

1
ответ дан 3 December 2019 в 05:36
поделиться

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

Что касается contentEditable , Я видел некоторые браузеры, которые поддерживали эту функцию для div -элемента, но не поддерживают. В любом случае, вы можете использовать iframe в своем div. Это документ -элемент может иметь contentEditable .

0
ответ дан 3 December 2019 в 05:36
поделиться

contenteditable attribute could be used for this purpose. Following code line has been tested in IE7 and Firefox 3.0.10. One part, I have noticed that this attribute should be used in lower case only; else it wont work in Firefox.

<div id="Div_ID" contenteditable="true" tabindex="0">
   Enter text here
</div>
0
ответ дан 3 December 2019 в 05:36
поделиться
Другие вопросы по тегам:

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