#jquery #jquery-ui #html #text
#jquery #jquery-пользовательский интерфейс #HTML #текст
Вопрос:
У меня есть веб-страница, полная текста «допустим, как на этой странице». Я не имею в виду «элемент ввода», я имею в виду, что любой текст был написан с
или, … и т.д. теги.
Когда я выбираю некоторые слова, появляется всплывающее окно Или мини-диалог с некоторыми опциями, скажем, ссылка на выбранный текст электронной почты или копирование или печать.
Это похоже на то, когда вы находитесь в любом браузере и выделяете некоторый текст, а затем щелкаете правой кнопкой мыши по этому выделенному тексту, и появляется меню (встроенное в ваше OS-window-).
я хочу ту же историю, но диалоговое окно отображается сразу после выбора. не нужно щелкать правой кнопкой мыши.
Я читаю «UI / API / 1.8 / Dialog»http://docs.jquery.com/UI/Dialog и «.mouseup()»http://api.jquery.com/mouseup / а также я нашел эту замечательную статью здесь http://motyar.info/blog/2010/02/get-user-selected-text-with-jquery-and.html
Но все еще не могу создать нужную мне функцию. Может быть, это просто, но я этого не вижу 🙂
Ценю ваш вклад! Спасибо!
Ответ №1:
Вы можете получить выделенный текст при наведении курсора мыши с помощью некоторого кода, подобного этому:
$(document).mouseup(function (event) {
var text = document.selection.createRange().text;
if (text != "") {
//Use text in popup, etc... SAMPLE:
alert(text);
}
});
Ответ №2:
Вместо .mouseup() Я думаю, вы хотите использовать .select()
:
Комментарии:
1. Я думаю, что это не будет работать ни с каким текстом, кроме элементов ввода. «Это событие ограничено полями <тип ввода =»текст»> и полями <текстовая область>». из этого jQuery.
2. Вы могли бы оформить текстовую область так, чтобы она выглядела / действовала как
<div>
. Возможно, это не лучшее решение, но, безусловно, может сработать.3. Я мог бы сделать textarea похожим на div или любой семантический тег из HTML5, но он функционирует не так. Пользователи должны иметь возможность выбирать, но не вводить что-либо. Там было бы много таких тегов просмотра «text» <p> или<span>, … и т.д. Таким образом, наличие textarea не было бы идеальным решением.