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