2012-01-06 2 views
0

Как я могу сделать ссылку доступной, как обычный текст, без запуска щелчка мыши?Ссылка, выбираемая из середины

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

+0

Можете ли вы включить и пример того, что вам нужно? ваш вопрос немного сложно понять – ManseUK

+0

, например, любую ссылку на любой странице, если вы попытаетесь выбрать текст ссылки из середины, она не будет выбрана ... ссылка может быть выбрана только из конечных точек, но не из середины. .. но я хочу, чтобы ссылка была выбрана так же, как простой текст. – Gull

+0

Я определенно понимаю, чего вы хотите, но можете ли вы объяснить свой случай использования? Другими словами, почему? –

ответ

5

Такое поведение определяется браузером, поэтому вы не можете с ним поделать. Я считаю, что некоторые браузеры позволяют вам выбирать якорный текст из любой точки (Opera?), А не только для начала и конца, но это не очень полезно для вас.

Если вы действительно хотите изменить поведение браузера по умолчанию (которое редко хорошая идея), то читайте дальше ...

Одним из возможных решений может быть не использовать a элементы, но вместо используйте что-то вроде span. Дайте каждому span ссылку общий класс и хранить предполагаемый URL:

<span class="linkSpan" data-link="http://www.example.com">This is a link</span> 

Затем использовать JavaScript (вы помечено вопрос с JQuery, так что я буду использовать JQuery здесь) для перенаправления пользователя:

$(".linkSpan").click(function() { 
    window.location = $(this).data("link"); 
}); 

Очевидно, что вам нужно будет подобрать стиль .linkSpan, чтобы он выглядел скорее как реальная ссылка.

Update (после @ комментарий Madmartigan в) - если удерживать нажатой кнопку мыши, когда курсор находится не по линии, а затем перейти по самой ссылке, вы можете начать выбор текста из любой точки в пределах ссылки. Мне это удалось, по крайней мере, в Chrome.

+0

@Gull Это хороший ответ. Вы не сможете избежать поведения по умолчанию, сохраняя привязки. –

+0

Я просто смог выбрать текст в ссылке с именем пользователя Glide с небольшим движением мыши ниндзюцу (FF9), поэтому, если ваши пользователи достаточно сообразительны, они должны уметь это выяснить. Интересно, почему * вам нужно было предложить это для нетехнических пользователей для начала? Могут ли пользователи копировать текст ссылки вообще, а с середины по какой-то причине? –

+0

@ Положите это очень хороший ответ, и это поможет мне решить проблему ... Мадмитанин благодарит за ninjustu, но не может дать ниндзя классам пользователям ... спасибо каждому телу – Gull

2

Если вы собираетесь это сделать, не стряхните свой HTML с помощью <span> s в качестве ссылок. Вы используете javascript, поэтому просто используйте javascript для удаления href из ссылок и прикрепите его к событию onclick.

Что-то вроде этого (с помощью JQuery):

$('a').each(function(){ 
    var href = $(this).attr('href'); 
    $(this).removeAttr('href'); // Now the link is "more selectable" 
    $(this).click(function(){ 
     top.location = href; 
    }); 
}); 

Гораздо более доступным, не заставит вас писать фиктивные HTML. Ссылки должны быть помечены тегом <a>. Демо: http://jsfiddle.net/phbt4/1/

Вам нужно будет указать стили на этих ссылках, чтобы убедиться, что они выглядят/чувствуют себя как ссылки, а не полагаются на настройки браузера по умолчанию, так как удаление атрибута href будет иметь такое влияние.

+0

+1, хорошее мышление. –

+0

Спасибо Джеймсу. Как истинный HTML-пурист/сноб, мне очень неприятно видеть, как хакеры, такие как привязанные по строкам, жестко закодированные в разметку, когда их можно легко применить с помощью javascript. –

+0

- идеальное решение по сравнению с предыдущим. – Gull

Смежные вопросы