Nano Hash - криптовалюты, майнинг, программирование

Кросс-браузерный способ выделения текста

У меня есть один элемент p, как я могу выделить текст внутри с помощью JavaScript, который будет кроссбраузерным?

<p>Some Text to select</p>

Я хочу выбрать этот текст (например, когда вы используете mousedown и перемещаете курсор) по щелчку. Это может быть решение jQuery.



Ответы:


1

С помощью @ADNow в комментарии я смог написать плагин jQuery, который выбирает текст, я удалил $.browser, чтобы он работал для jQuery> 1.9.

$.fn.sel = function() {
    var node = this[0];
    if (document.body.createTextRange) {
        var range = document.body.createTextRange();
        range.moveToElementText(node);
        range.select();
    } else if (window.getSelection) {
        var selection = window.getSelection();
        if (selection.setBaseAndExtent) {
            selection.setBaseAndExtent(node, 0, node, 1);
        } else if (document.createRange) {
            var range = document.createRange();
            range.selectNodeContents(node);
            selection.removeAllRanges();
            selection.addRange(range);
        }
    }
};
17.02.2014

2

Если вы хотите, чтобы это было в небольшой библиотеке, меньшей, чем jQuery, вы можете использовать движок Sizzle (из которого построены селекторы jQuery). Это всего лишь 4K в размере при минимизации.

http://sizzlejs.com/

17.02.2014
  • Я не хочу выбирать элемент, а текст, как в процессе Word, когда вы хотите изменить стиль выделенного текста. 17.02.2014
  • Это противоречит вашему вопросу 17.02.2014
  • @ADNow нет, я хочу выбрать текст, а не узел DOM. 17.02.2014
  • Аааа, тогда это совсем другое! Возможно, вопрос нужно немного изменить :) 17.02.2014

  • 3
    document.getElementsByTagName('p')[0].innerHTML
    

    или подключить элемент по классу или по идентификатору. В этом случае я использовал массив тегов p и 0 для первого элемента.

    17.02.2014
  • Я не хочу получать текст, я хочу выделить его, как вы делаете, когда вы щелкаете и перетаскиваете. 17.02.2014
  • Извините, я неправильно вас понял. Вот старая тема о том, что вы ищете: stackoverflow.com/questions /11128130/выбрать-текст-в-javascript 17.02.2014
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..