Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Выделение текста в ссылке не переходя по ней (https://javascript.ru/forum/dom-window/67077-vydelenie-teksta-v-ssylke-ne-perekhodya-po-nejj.html)

Romaxa 27.01.2017 14:05

Выделение текста в ссылке не переходя по ней
 
Добрый день!
Есть такая интересная тема:
Есть блок с текстом, весь текст находящийся в блоке является ссылкой.
Задача:
1. Если просто кликнуть по тексту, то просто проваливаемся по ссылке.
2. Если выделяем текст, то надо просто выделить текст, а по ссылке не переходить!
Есть какое то решение?
Чего удалось догнать пока решал задачу:
1. Если делать обычной ссылкой a href, то естественно ничего не получается, надо переход делать через js.
2. Убираю a href, перевожу в js, вешаю ссылку на div блок (js только начал изучать, поэтому добился результата прибегнув поиску инета) результат ниже:
<div onclick='window.location.href=\"".$resultRubric['rubric_en'].'/post/'.$resultSearch['id']."\"' style='cursor:pointer; display: block;' id='contentTablePostLink'>Контент</div>
Вот и вся красота
Как Вы думаете, можно сделать так как задумал?
Яркий пример моего результата, сайт в контакте!
Заранее спасибо, даже если не ответите :victory:

Alexandroppolus 27.01.2017 15:00

Romaxa,

Ну вот, например, в Хроме текст ссылки можно выделить, только если стартануть выделение за пределами этой ссылки. Но в таком случае перехода в принципе не будет, поскольку мышь была нажата за пределами элемента, а значит, нет события click.

Потому не очень понятно, что надо делать.

Romaxa 27.01.2017 15:18

Alexandroppolus, я полностью согласен, что если стартануть за пределами ссылки, то выделение прокатывает, но задача в другом, чтобы текст можно было выделить из любого места ссылки. Вот пример: https://vk.com/evil_incorparate можно мышкой выделить любой текст шутки из любого места, и после того как отпустим мышку, текст останется выделенным, а если нажать на текст, то мы провалимся в сам пост. Я ровно так же хочу сделать. Можно конечно сделать кнопку "Подробнее", но хочу уйти от стандартов тем самым сделать сайт немного интереснее. Спасибо что ответили.

TestUser013 27.01.2017 15:23

Простой клик = переход по ссылке
Драг лево-право = выделение текста
Драг вверх-вниз = драгание ссылки

http://pastebin.com/8cmfzzuP


Если вы ставите как пример вконтакте, то там не ссылки, там блоки с прикрепленными событиями.

Alexandroppolus 27.01.2017 15:34

Цитата:

Сообщение от Romaxa
Вот пример: https://vk.com/evil_incorparate можно мышкой выделить любой текст шутки из любого места

у меня запускается драг-н-дроп ссылки, если попытаться заселектить текст строго внутри ссылки (например, только слово evil).

Romaxa 27.01.2017 15:41

Цитата:

Сообщение от Alexandroppolus
у меня запускается драг-н-дроп ссылки, если попытаться заселектить текст строго внутри ссылки (например, только слово evil)

Конечно, ведь по ссылке надо сначала перейти, а потом уже тестировать на самом сайте.

Romaxa 27.01.2017 15:43

Цитата:

Сообщение от TestUser013
Если вы ставите как пример вконтакте, то там не ссылки, там блоки с прикрепленными событиями.

Да, я так и сделал, событие прикрепил на div блок, об этом писал в самой теме.

Romaxa 27.01.2017 15:52

Замечательно работает если повесить на div блок событие "ondblclick", но все привыкли к юзабилити, поэтому не каждый догадается что надо дважды топнуть на блок с текстом, чтобы провалится внутрь )

Alexandroppolus 27.01.2017 16:06

Цитата:

Сообщение от Romaxa (Сообщение 442457)
Конечно, ведь по ссылке надо сначала перейти, а потом уже тестировать на самом сайте.

а, понял )

Скорее всего, там в обработчике клика смотрят выделенный текст. Если не пустой (точнее, если содержит хотя бы один "не whitespace"), то ничего не делают.

Alexandroppolus 27.01.2017 16:08

если захочешь так же делать, то вот
https://learn.javascript.ru/range-textrange-selection


Часовой пояс GMT +3, время: 13:42.