Учитывая увеличивающийся фокус к выполнению динамических языков (da-vinci vm и т.д.) на JVM и растущем числе динамических языков, которые действительно работают на нем (JRuby, Grrovy, Jython) я думаю, что варианты использования просто увеличиваются. Некоторые сценарии, которые я нашел действительно, извлекли выгоду,
, Разработка прототипа - использует RoR или Grails для создания быстрых прототипов с преимуществом способности к runn это на стандартном сервере приложений и (возможно) повторном использовании существующие сервисы и т.д.
Тестирование - правильные модульные тесты намного намного быстрее на динамических языках
тест Производительности/автоматизации, пишущий сценарий - некоторые из этих инструментов начинают позволять стандарту использования динамический язык выбора записать сценарии тестирования вместо собственных языков сценария. Дополнительная льгота могла бы быть к способному для многократного использования некоторого кода модульного теста, который Вы уже записали.
Если вам не нужно писать свои собственные, вы можете посмотреть tinyMCE, http : //tinymce.moxiecode.com/ , так как это хороший редактор WYSIWYG в javascript.
Для этого вам, вероятно, захочется посмотреть что-то вроде этого: http://codingtricks.blogspot.com/2009/03/javascript-select-partial-text-in-div.html
Также могут быть полезны: Произошла ошибка с ранжированием JavaScript https://developer.mozilla.org/en/DOM/window.getSelection
То, что вы пытаетесь сделать, будет сложным, так как вам нужно будет занять выбранную область, удалите все теги, а затем вставьте нужный тег для выбранной области.
Вы можете использовать document.getElementById ('your_text_id'). SetSelectionRange (start, end);
, а также Math.random ()
для генерации случайных чисел для start
и end
Просто чтобы подробно ответить на свой вопрос, чтобы кто-то, ищущий что-то подобное, не должен был иди искать в другом месте ...
Код, который я в итоге использовал, был примерно таким:
var range = document.createRange();
range.setStart( <get the node the selection starts in>, <char offset in that node> );
range.setEnd( <get the node the selection ends in>, <char offset in that node> );
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
Большое спасибо Джеймсу Блэку за то, что он указал мне в правильном направлении.