Выделите текстовую позицию в Javascript - PullRequest
1 голос
/ 02 апреля 2010

У меня есть редактор HTML в реальном времени с текстовой областью слева для ввода кода и DIV «предварительного просмотра» справа для предварительного просмотра введенного кода. В данный момент при редактировании кода на левой панели предварительный просмотр просто находится там, где он есть, поэтому часто часть редактируемого кода не находится в видимой области предварительного просмотра (особенно когда задействованы изображения).

У меня вопрос, как сделать прокрутку предварительного просмотра, чтобы показать часть кода, которая в данный момент редактируется?

Вот страница, которая у меня пока есть: http://www.caerphoto.com/rtedit.html Вы заметите, что в источнике у меня есть (в настоящее время неиспользуемая) функция matchPreview (), которая пытается сопоставить позицию прокрутки предварительного просмотра на основе позиции прокрутки текстовой области, но, очевидно, если задействованы изображения или большой текст, то две панели длиннее совпадение.

Ответы [ 3 ]

0 голосов
/ 18 мая 2010

позвольте мне разбить вашу задачу на 2 подзадачи:

  1. получать информацию, когда меняется дом вы можете слушать изменения в домене, как onsubtreemodified.

см en.wikipedia.org/wiki/DOM_events

  1. прокрутить элемент в поле зрения

ответом на это является метод scrollintoview:

см www.quirksmode.org/dom/tests/scrollintoview.html

однако, это может вам не сильно помочь, поскольку вы обновляете весь HTML-документ при каждом изменении текстовой области. поскольку вы не можете получить положение курсора внутри текстовой области, это может быть не так просто.

извините, приятель, в конце концов, у меня нет решения, но, возможно, мое размышление каким-то образом помогает.

удачи!

0 голосов
/ 31 декабря 2010

Когда я попробовал это в Firefox. в предварительном просмотре не было разрывов строк; это правильно? Может быть, я смогу помочь ( недавно сделал что-то similsr ), но не, если разрывы строк удалены ...

0 голосов
/ 02 апреля 2010

Вместо div от цели-клона попробуйте использовать тег.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...