onclick блокирует копирование и вставку в Mobile Safari?

Справочная информация: У меня есть раскрывающееся меню, которое в основном работает так же, как описано в другом вопросе о проблеме с событием Mobile Safari : щелкните элемент меню, чтобы отобразить раскрывающееся меню, либо щелкните элемент меню еще раз, либо щелкните в любом месте страницы, чтобы скрыть меню. JQuery, скрывающий раскрывающийся список, привязан к событию щелчка родительского

, охватывающего все окно. Это раскрывающееся меню работает нормально во всех браузерах, включая Mobile Safari, и я описываю его здесь только для контекста.

Проблема: это событие onclick не позволяет пользователям использовать Mobile Safari (проверено на iPod Коснитесь 4.2.1 и iPad 4.3.5) из обычного режима "Нажатие и удерживайте" Копирование | Вставьте всплывающее окно в любом месте нашего сайта. Ооо! Основываясь на моем исследовании, кажется, что если для элемента HTML определен обработчик кликов, его содержимое не будет копироваться?

Я установил здесь урезанную демонстрацию ( Обновление: В этой демонстрации я использую обычный JavaScript, чтобы показать, что это не проблема jQuery, но это также не работает с .click () jQuery): http://adamnorwood.com/ios-copypaste .html

Если вы откроете эту ссылку в Mobile Safari, вы не сможете скопировать текст lorem ipsum, но вы получите сообщение через console.log (), когда вы нажмете на текст, чтобы доказать, что щелчок обработчик запускается.

Вот суть, если ссылка не работает:

Imagine a large block of text here...

То, что я пробовал:

  • -webkit-user-select: text as , описанное здесь

  • с использованием onmouseup и других событий вместо onclick (нет).

  • перемещение onclick в тег или в объект окна

  • Рисунок 6-4 в документации по обработке событий iOS актуален, но не привел мне какие-то великие откровения о том, что делать ...

  • Есть мысли? Это так, как должно работать, или я что-то упускаю? Есть ли способ сделать этот текст доступным для выбора, но при этом запустить обработчик кликов? Или, может быть, мне стоит вернуться к чертежной доске и узнать, как лучше всего скрыть раскрывающееся меню, чтобы полностью избежать этой проблемы?

9
задан Community 23 May 2017 в 10:34
поделиться