Что такое кросс-браузерный метод? Мне нужно предотвратить любое действие по умолчанию для изображения, чтобы ни перетаскивание, ни что-либо еще не срабатывали по умолчанию.Как предотвратить действия по умолчанию в JavaScript?
ответ
Вы можете только отменить определенные события. Вы не можете «глобально отменить» действия по умолчанию.
Чтобы отменить dragging
изображение (которое является только функцией по умолчанию в некоторых браузерах), верните false
в событие mousedown
.
Вы можете глобально отменить множество действий по умолчанию, но не все из них. В этом случае (простить ужасный код) 'document.onmousedown = function (e) {if (typeof e == 'undefined') e = window.event; if (e.preventDefault) e.preventDefault(); if (e.stopPropagation) e.stopPropagation(); e.returnValue = false; return false; }; 'Но, очевидно, у этого будет множество неприятных побочных эффектов. – eyelidlessness
Это правда, что будет иметь неприятные побочные эффекты, но, безусловно, более глобальная концепция. –
Чтобы добавить: это работает практически на любом событии, которое пузырится. Был достигнут определенный прогресс в деле «делегирования событий» (очевидно, это совпадающая концепция, а не точно 1: 1) с событиями, не связанными с пузырьками, но я действительно не знаю, как они реализованы. Я знаю, что недавняя альфа-версия jQuery начала реализовывать их, поэтому, возможно, стоит посмотреть. – eyelidlessness
Вы можете зарегистрировать события, которые хотите отменить, а затем либо return false
, либо использовать Event.preventDefault()
, в зависимости от браузера и события.
это не работает кросс-браузер. Но плакат не указал, какие браузеры нацелены в любом случае. – squiddle
(function() {
var onmousedown;
if('onmousedown' in document && typeof document.onmousedown == 'function') {
onmousedown = document.onmousedown;
}
document.onmousedown = function(e) {
if(typeof e == 'undefined') {
e = window.event;
}
if(!e.target) {
e.target = e.srcElement || document;
}
if('nodeName' in e.target && e.target.nodeName.toLowerCase() == 'img') {
if(e.preventDefault) {
e.preventDefault();
}
// If you want to register mousedown events for
// elements containing images, you will want to
// remove the next four lines.
if(e.stopPropagation) {
e.stopPropagation();
}
e.cancelBubble = true;
e.returnValue = false;
return false;
}
if(onmousedown !== undefined) {
onmousedown(e);
}
};
})();
Возможно, вам потребуется что-то подобное другим событиям, которые вы хотели бы предотвратить, если это не делает то, что вы хотите.
Также стоит отметить, что если вы пытаетесь запретить пользователям загружать изображения со страницы на свой компьютер, вам это не удастся. Если браузер может загрузить изображение, так же может быть и пользователь. Использование JavaScript для блокировки (некоторых) попыток легко обойти, просто отключив JavaScript.
- 1. Событие предотвратить javascript по умолчанию
- 2. Как я могу предотвратить действие по умолчанию() по умолчанию JavaScript
- 3. Предотвратить ВСЕ по умолчанию анимации/действия
- 4. javascript: как предотвратить событие exitFullscreen по умолчанию?
- 5. Невозможно предотвратить событие по умолчанию в javascript
- 6. Как предотвратить действия по умолчанию во всем приложении?
- 7. Javascript предотвратить по умолчанию не выполняется
- 8. Javascript предотвратить по умолчанию для KeyUp
- 9. Изменение действия по умолчанию клавиша JavaScript
- 10. событий предотвратить по умолчанию
- 11. где предотвратить поведение по умолчанию
- 12. Как предотвратить прокрутку по умолчанию в Android?
- 13. jQuery предотвратить входное действие по умолчанию
- 14. Как предотвратить разворачивание складного содержимого по умолчанию?
- 15. как установить действия по умолчанию в mvc
- 16. как предотвратить поведение по умолчанию по умолчанию на div
- 17. Как предотвратить действие по умолчанию с помощью MooTools
- 18. jquery предотвратить вопросы по умолчанию
- 19. Предотвратить перетаскивание по умолчанию по умолчанию в приложении ember
- 20. предотвратить по умолчанию не работает в моем javascript
- 21. Предотвратить событие по умолчанию (WinAPI)
- 22. Предотвратить по умолчанию с formToWizard.js
- 23. Предотвратить поппинг клавиатуры по умолчанию
- 24. Как предотвратить отображение предложения по умолчанию?
- 25. Как предотвратить удаление объекта по умолчанию?
- 26. Как предотвратить передачу GCC флаги по умолчанию?
- 27. Как предотвратить нажатие кнопки по умолчанию
- 28. Как предотвратить проверку данных браузера по умолчанию?
- 29. предотвратить действие по умолчанию с IE8
- 30. Запретить все действия по умолчанию
Просьба уточнить свой вопрос – Pierreten
Все понятно. Внимательно прочитайте. –
Ale Anderson, если люди просят вас уточнить свой вопрос, вы можете подумать, что то, что кажется вам понятным, не обязательно ясно для других. Ваш вопрос крайне неясен. – eyelidlessness