جلوگیری از انتخاب متن در صفحات وب
اگر شما هم وبسمتر هستید گاهی اوقات نیاز دارید تا انتخاب یا select متن اتفاق نیفتد؛ در این نوشته قصد این را داریم که با کمک css یا جاوااسکریپت این کار را انجام دهیم.
جلوگیری از انتخاب متن در صفحات وب
برای جلوگیری select شدن متن css قطعه کد زیر را استفاده کنید:
.unselectable {
-webkit-user-select: none;
-webkit-touch-callout: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
color: #cc0000;
}
سپس تگ body صفحه خود را به شکل زیر در بیاورید:
<body class="unselectable">
نکته: برای روش دوم نیاز به کدهای روش اول ندارید.
برای جلوگیری select شدن متن javascript قطعه کد زیر را استفاده کنید:
<body onmousedown="return false" onselectstart="return false">
برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 5]



















میتوان این ویژگی را فقط برای کاربرانی که لاگین نیستند فعال کرد؟
بله، با استفاده از جاوااسکریپت و بررسی وضعیت لاگین کاربر، میتوان این قابلیت را به صورت هدفمند برای کاربران خاص فعال یا غیرفعال کرد.
آیا ترکیب این روش با جاوااسکریپت قابل اطمینانتر است یا فقط CSS کافی است؟
استفاده از هر دو روش (CSS و جاوااسکریپت) به طور همزمان میتواند اطمینان بیشتری را فراهم کند، اما در اکثر موارد CSS به تنهایی کافی است.
استفاده از user-select: none روی لینکها یا فرمها مشکلی ایجاد نمیکند؟
استفاده از user-select: none روی لینکها و فرمها ممکن است تجربه کاربری را مختل کند، زیرا کاربران انتظار دارند بتوانند با این عناصر تعامل داشته باشند. بهتر است این ویژگی را با دقت و فقط در مواردی که واقعاً نیاز است به کار ببرید
اگر بخواهیم فقط روی بخش خاصی از صفحه انتخاب متن را غیرفعال کنیم و بقیه آزاد بمانند، باید چه تغییری بدهیم؟
برای این کار میتوانید کلاس `unselectable` را به تگ مورد نظر خود اعمال کنید، نه به کل `body`
این روش روی همه مرورگرها یکسان کار میکند؟
بله این روشها روی اکثر مرورگرهای مدرن به خوبی کار میکنند.