Ондраг ROT-13 / ROT-47 декодер - PullRequest
1 голос
/ 18 апреля 2011

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

Так же, как и ключевые слова в imdb, где вам нужно перенести их, чтобы их раскрыть.

Я подумал, что было бы хорошим и интерактивным способом показать текст, если он помечен.

Пример:

Как программист выражает h (is)(э) любовь?Zl srryvatf sbe lbh ner uneqpbqrq.

Теперь вы перетащите отметку обфусцированного текста так же, как если бы вы были готовы скопировать его в буфер обмена, и он должен раскрыть.способ сделать это?Моя текущая проблема - это способ определить текущий выбор в javascript.

Ответы [ 2 ]

1 голос
/ 18 апреля 2011

Есть один хитрый способ, о котором я могу думать только с помощью CSS:

Используйте тот же цвет текста, что и цвет фона! Затем, когда пользователи выделяют, текст раскрывается. Вам нужно выделить или привлечь внимание к той части, которую они должны выделить, чтобы сделать ее очевидной.

Другой способ:

Вставьте rot13 в текстовый ввод только для чтения и присоедините событие select к вызову AJAX, который его декодирует. Будет работать только для небольших фрагментов текста спойлера, которые помещаются на входе. Вы можете попробовать это с текстовой областью, но она не принимает атрибут readonly (возможно, не имеет значения).

Есть много других способов сделать это (например, скрыть / показать div), но это самые близкие / самые простые способы, которые я мог бы подумать, которые соответствуют вашему требованию выбора текста для запуска спойлера.

РЕДАКТИРОВАТЬ : С помощью цветового решения вы не захотите кодировать текст, просто сделайте его «невидимым», пока он не будет выделен. Это на самом деле довольно глупое решение, и есть много других, которые лучше, но хорошая сторона в том, что это только CSS. Честно говоря, я думаю, что принудительное выделение будет болезненным для ваших пользователей, просто сохраните значение rot13 в одном месте, реальное значение в другом (возможно, скрытый диапазон) и используйте js, чтобы поменять их местами при щелчке или что-то еще. Нет необходимости обрабатывать декодирование отдельно. Вероятно, вы могли бы сделать это только с помощью CSS и некоторых умных селекторов :hover или :focus.

EDIT2 : По какой-то причине мне не пришло в голову, что вы можете выполнить декодирование rot13 только с помощью javascript, я пришел из мира php, так что теперь я чувствую себя довольно глупо. Извините, я не ответил на ваш вопрос лучше, но, надеюсь, что-то из этого будет полезным. GL!

1 голос
/ 18 апреля 2011

jCarat (jQuery Caret Plugin) должен покрывать ваши потребности.

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