Выделение внутри div
Поставил себе на phpBB мод, позволяющий делать "быстрые цитаты" (это когда ты выделяешь текст в посте, кликаешь по кнопке "быстрой цитаты", и выделенный текст прыгает в форму быстрого ответа). Сразу заметил недоработку - текст можно выделять где угодно на странице, даже если это где-то за пределами поста. Собссна, пытаюсь это дело исправить, чтобы оно брало выделение только из дива "#post555" например. Код для получения выделения используется такой:
if (window.getSelection) { theSelection = window.getSelection().toString(); } else if (document.getSelection) { theSelection = document.getSelection(); } else if (document.selection) { theSelection = document.selection.createRange().text; } Естественно, первым делом пробовал подставить вместо document и window своё значение - $('#post555'). Но скрипт в таком виде почему-то вообще не работает. Возможно ли брать выделение только из нужного блока, а не со всей страницы? |
Цитата:
Собственно функцию оставляете такой же - а вот вызов её мон посмотреть в примере |
В этом примере тот же самый косяк. Если сначала выделить текст поста, затем выделить текст выше на странице и нажать цитировать - происходит цитата текста за пределами поста. Короче реализация не очень, но идея мне понравилась.) У меня статичная кнопка под каждым постом, попробую менять у неё какой-нибудь attr при $('.post').mouseup, а при $('*:not(.post)').mouseup менять attr всех кнопок цитирования на обратный. И от этого attr уже плясать - активна кнопка или неактивна.)
|
Freakmeister,
В неужатом - первом Варианте = парсит тоолько в сообщении - но - по юзу тысчёнки форумов - больше нравиться вторая версия - там произвольная картинка устанавливаемая владельцем форума - нареканий на копирование за пределы поста - не было(это более 30-40 т пользователей (инфо полугода использования) |
Freakmeister,
Гы - есть идея-хак: Как метод отсутствия выхода выделения за пределы div 1. Остлеживаем событие моusedown в нашем блоке, - по нему меряем высоту - ширину нашего div - выставляем ему принудительно высоту - ширину на пару пикселов меньше и добавляем overflow:hidden. В скроллируемом блоке - selection не выходит за его пределы, при убирании мыши с div -удаляем добавленные свойства |
Не красиво. У меня была ещё идея при нажатии кнопки цитирования под постом, брать содержимое поста через text или val, убирать из него html и потом искать в нём выделенный текст. Но походу нашёлся вариант лучше:
http://stackoverflow.com/questions/5...ery-javascript |
Цитата:
|
Часовой пояс GMT +3, время: 12:58. |