Отключить возможность выделения и копирования полей на странице
Здравствуйте!
Подскажите, пожалуйста, как мы можем отключить возможность пользователям системы выделять и копировать значения из полей детали на странице редактирования записи?
Стоит задача: предотвратить возможность пользователей копировать значения из полей детали "Средства связи" на странице Контакта. Кто-то занимался когда-нибудь подобной задачей?
Нравится
Добрый день, Виталий!
Заблокировать копирование средствами bpm'online вряд ли получиться. но вы можете использовать стандартные средства JavaScript, например:
- событие oncopy разрешает выделение текста, но полностью зарпещает копирование (сам пробовал, не нашел способа реально скопировать текст, как по мне - один из самых простых и достаточно надежных способов). Единственный недостаток - на некоторых браузерах может работать не так, как ожидается (в Edge, Chrome, Mozilla, Opera работает точно хорошо).
- отмена события onmousedown (для IE - onselectstart) - можно поставить return false для этих событий, что запртетит выделение. Проблема с этим событием в том, что если начать выделение за пределами контейнера, для которого отменены эти событие, текст все-таки выделится.
- CSS свойство xxx-user-select, где xxx - префиксы браузеров (например, -webkit-, -moz-, -ms-) запрещает выделение, но оно так и не было внесено в стандарты, хотя и поддерживается большинством браузеров (кроме IE9-)
Можете попробовать один из способов или их комбинации.
Золотарев Артем Андреевич,
Артем, добрый день!
Подскажите, пожалуйста, по коду:
define("ContactCommunicationDetail", ["terrasoft"], function(Terrasoft) { return { entitySchemaName: "ContactCommunication", methods: { init: function() { this.callParent(arguments); document.body.oncopy = function() { return false; }; } }, diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/ }; });
Как видите, я вставил его на деталь, но копирование теперь не работает на всей странице контакта + на всех последующих страницах. Как мне сделать так, чтоб копирование не работало конкретно в полях детали?
В любом случае пользователь сможет нажать в браузере F12 и скопировать всё нужное из HTML-кода страницы.
Бессмыслено бороться с утечкой того, что уже видит клиент. Можно скрыть записи детали правами доступа, но тогда он и не увидит содержимого полей.
Разве что заставить пользователей работать с системой в браузере на изолированном компьютере по RDP без общего буфера обмена и расшаренных папок.