Я хочу прикрепить обработчик событий к узлу <span>
, который обрабатывает текущий выбор, но до того, как сработает событие click, кажется, что выбор очищен браузером (Chrome 16.0.912.63).
Я могу немного обойти эту проблему, подключив обработчик к onmousedown, но я бы предпочел не делать этого таким образом.
Вот краткий пример HTML, который иллюстрируетпроблема (требуется jQuery):
<span class="paste">PASTE</span>
<textarea id="selected"></textarea>
<script type="text/javascript">
$('.paste').click(function(e) {
var txt = window.getSelection(); // works only in Chrome, Safari, FF
$('#selected').val(txt);
e.stopPropagation();
});
</script>
Желаемый бививор заключается в том, что я могу выделить текст с помощью мыши, а затем щелкнуть слово «PASTE», чтобы вставить содержимое выбранной области втекстовая область.Похоже, что выбор очищается до срабатывания обработчика щелчков.Этот код прекрасно работает, если я использую:
<a class="paste" href="#">PASTE</a>
вместо элемента span или если я связываю onmousedown, но я не контролирую элементы, поэтому я не могу просто использовать <a>
вместо <span>
.