Отключить возможность выделения и копирования полей на странице

Здравствуйте!

Подскажите, пожалуйста, как мы можем отключить возможность пользователям системы выделять и копировать значения из полей детали на странице редактирования записи? 

Стоит задача: предотвратить возможность пользователей копировать значения из полей детали "Средства связи" на странице Контакта. Кто-то занимался когда-нибудь подобной задачей?

Нравится

3 комментария

Добрый день, Виталий!

Заблокировать копирование средствами 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 без общего буфера обмена и расшаренных папок.

Показать все комментарии