Я хочу отключить контекстное меню по умолчанию, которое появляется после выбора определенного текста в Safari iOS (веб-браузер). Это возможно?Отключить контекстное меню выбора в Safari iOS
ответ
Это возможно, см this example. В принципе, важная часть, чтобы установить правильные CSS atributes:
body { -webkit-touch-callout: none !important; }
a { -webkit-user-select: none !important; }
Кроме того, здесь question, который решает подобную проблему
Я видел это решение, но оно не отключает меню выбора текста, но только длинное нажатие меню, которое появляется, когда вы долго нажимаете ссылку :( – Samin
Согласно onclick blocks copy+paste on Mobile Safari?, если текст в элементе, который имеет OnClick события, контекстное меню не будет отображаться.
На самом деле это даже не будет который может быть не таким, каким вы хотели. – rakslice
Единственный способ, которым я нашел, - удалить выделение и снова выбрать с помощью javascript. Посмотрите на мой код:
/* prevent ios edit-menu */
if (/(iPad|iPhone|iPod)/g.test(navigator.userAgent)) {
!function(){
var target = document.body; // the element where the edit menue should be disabled
var preventSelRecursion;
document.addEventListener('selectionchange', function(e){
var S = getSelection();
if (!S.rangeCount) return;
if (S.isCollapsed) return;
var r = S.getRangeAt(0);
if (!target.contains(r.commonAncestorContainer)) return;
if (preventSelRecursion) return;
iosSelMenuPrevent();
}, false);
var iosSelMenuPrevent = debounce(function(){
var S = getSelection();
var r = S.getRangeAt(0);
preventSelRecursion = true;
S = getSelection();
S.removeAllRanges();
setTimeout(function(){ // make remove-add-selection removes the menu
S.addRange(r);
setTimeout(function(){
preventSelRecursion = false;
});
},4);
},800); // if no selectionchange during 800ms : remove the menu
/* helper-function */
function debounce(fn, delay) {
var timer = null;
return function() {
var context = this, args = arguments;
clearTimeout(timer);
timer = setTimeout(function() {
fn.apply(context, args);
}, delay);
};
}
}();
}
Я пробовал, но не работал. –
- 1. Отключить контекстное меню выбора в пешеходном (Cordova)
- 2. Отключить контекстное меню css?
- 3. Как отключить контекстное меню?
- 4. Отключить контекстное меню iPad/Safari при длинном щелчке
- 5. Как отключить контекстное меню WebView?
- 6. Отключить контекстное меню по щелчку
- 7. Отключить контекстное меню правой кнопкой?
- 8. Отключить контекстное меню контекстного контекстного меню Firefox
- 9. Отключить контекстное меню и меню rightclick
- 10. Отключить контекстное меню в ComboBox в C#
- 11. iOS Safari - отключить масштабирование
- 12. Android: Включить отключить контекстное меню Пункт
- 13. Невозможно отключить контекстное меню в CKEditor 4.4.2
- 14. Как отключить контекстное меню браузера в qooxdoo?
- 15. MS Access отключить контекстное меню в подформате
- 16. Как отключить контекстное меню в WPF?
- 17. Отключить контекстное меню ckeditor в версии 4.4.6
- 18. Как переопределить контекстное меню выбора текста webview?
- 19. Скрыть контекстное меню без отключения выбора текста
- 20. Как вызвать контекстное меню для пустого выбора?
- 21. Контекстное меню Datagrid только для одного выбора
- 22. Контекстное контекстное меню в Netbeans
- 23. Отключить контекстное меню CKEditor Клиентская сторона
- 24. WPF XAML Как отключить контекстное меню?
- 25. Отключить выноску (контекстное меню) на Android
- 26. Отключить контекстное меню заголовка главного окна
- 27. Отключить контекстное меню управления веб-браузером
- 28. qt/C++ контекстное меню - отключить элемент
- 29. Отключить контекстное меню для текстового поля
- 30. Как отключить контекстное меню значка окна
ли вы имеете в виду в веб-браузере Safari или в UIWebView в приложении? – Daniel
Веб-браузер, отредактированный вопрос – Samin