Где это сделать? - PullRequest
       9

Где это сделать?

1 голос
/ 07 июля 2011

Среда представляет собой веб-приложение на Java с интерфейсом jquery и jquery-ui. Существует сайт администратора, где они могут создавать контент, который появляется на сайте «участника».

Клиенту нужен редактор типа WYSIWYG на сайте администратора, чтобы он мог вставлять HTML в текстовые области, которые появляются на сайте участника. Я смотрел на некоторые из них и провел несколько экспериментов с cleditor , и он, кажется, прост в использовании, и он делает большую часть того, что я хочу. Мне также посоветовали использовать плагин AntiSamy на бэкэнде, чтобы предотвратить добавление злонамеренным кодом их «администраторам» - я полагаю, они не слишком доверяют своим администраторам.

Но у меня есть одно требование, которое заставляет меня чесать голову. Они хотят, чтобы любые гиперссылки, добавленные в текстовые области, переходили в другое окно (а не в другое окно каждый раз). Так что в основном они хотят target="myWindow" в каждом href, я думаю. И они хотят, чтобы это применялось, независимо от того, создают ли они гиперссылку в редакторе, или если они вставляют документ Word с гиперссылкой в ​​нем, который, по-видимому, является чем-то, что они делают много.

Мой вопрос: как применить это target ко всем hrefs? Есть ли редактор wysiwyg, который это сделает, или это можно сделать в плагине AntiSamy (так как он уже разбирает html), или мне нужно сделать это где-то между ними?

Ответы [ 2 ]

1 голос
/ 07 июля 2011

Я бы обработал это в JavaScript на странице, когда пользователь отправляет форму.Вы можете перебрать все теги привязки и добавить необходимые целевые биты в конец.Процесс будет похож на ответ здесь:

jQuery - измените тег привязки в CLEditor

1 голос
/ 07 июля 2011

Я бы сделал это после публикации данных. Довольно просто разобрать HTML с JSOUP и добавить новую цель к нему. Вы можете сделать это с RegEx также.

Другой вариант - использовать javascript и легко добавлять

$(".somediv a").attr('target', '_blank');

Последний вариант, если вы не знаете базовый тег. Вы можете сделать <base target='_blank'/>, что сделает ВСЕ ваши кадры новой целью.

Редактировать -

Также, как указал Джастин, вы можете обработать href перед публикацией. Я не знал, что у CKEdit была эта опция. Это, вероятно, лучшее решение.

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