<header>
<h2 class="title">cut (HTML Event)</h2>
<p class="description">Спрацьовує, коли користувач вирізає текст до буфера обміну.</p>
</header>
<main>
<div class="result">
<label for="sensitiveData">Введіть дані:</label>
<textarea id="sensitiveData" rows="4" cols="50">Цей текст не можна вирізати, якщо захист увімкнено.</textarea>
<div>
<label for="protectData">Заборонити вирізання:</label>
<input type="checkbox" id="protectData" checked>
</div>
<p id="statusMessage"></p>
</div>
</main>
body {
font-size: 16px;
line-height: 1.5;
font-family: monospace;
}
header {
background-color: #f1f1f1;
margin-bottom: 25px;
padding: 15px;
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
header h2.title {
padding-bottom: 15px;
border-bottom: 1px solid #999;
}
header p.description {
font-style: italic;
color: #222;
}
.result {
background-color: #f8f8f8;
padding: 15px;
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
box-shadow: 0px 0px 3px 0px rgba(118, 118, 118, 1);
}
textarea {
width: 100%;
box-sizing: border-box;
margin-bottom: 15px;
}
p {
margin-top: 15px;
font-size: 14px;
color: #e74c3c;
}
document.addEventListener('DOMContentLoaded', function() {
const sensitiveDataTextarea = document.getElementById('sensitiveData');
const protectDataCheckbox = document.getElementById('protectData');
const statusMessage = document.getElementById('statusMessage');
sensitiveDataTextarea.addEventListener('cut', function(event) {
if (protectDataCheckbox.checked) {
event.preventDefault(); // Скасування стандартного вирізання
const warningText = 'Вирізання цього тексту заборонено!';
event.clipboardData.setData('text/plain', warningText);
statusMessage.textContent = 'Спроба вирізання заблокована, і в буфер обміну додано попередження.';
console.log('Спроба вирізання заблокована.');
} else {
statusMessage.textContent = 'Текст вирізано успішно.';
console.log('Текст вирізано.');
}
});
protectDataCheckbox.addEventListener('change', function() {
if (protectDataCheckbox.checked) {
statusMessage.textContent = 'Захист увімкнено. Вирізання тексту заборонено.';
} else {
statusMessage.textContent = 'Захист вимкнено. Вирізання тексту дозволено.';
}
});
});
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.