PDA

View Full Version : سوال: مشکل با onselectstart در کروم-جلوگیری از کپی قسمتی از متن



sara_1234
چهارشنبه 24 تیر 1394, 07:49 صبح
ا سلام
من تو یک صفحه html می خوام یه قسمتی از متن قابل انتخاب و کپی شدن نباشه نه همه متن فقط قسمتی از اون
از onselectstart استفاده کردم همچنین از css
تو فایرفاکس درسته اما تو کروم مشکل داره
تو فایرفاکس نه انتخاب میشه و نه کپی اما تو کروم انتخاب نمیشه (های لایت نمیشه) اما کپی میشه
من فکر میکنم onselectstart تو کروم فقط وقتی برای المنت ابتدایی یا انتهایی استفاده شده باشه درست کار میکنه و وقتی این المنت بین سایر المنت ها استفاده شده باشه کارایی خودش رو از دست میده
این کد من :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>disable copy part of text</title>
</head>
</script>
<body>
<style>
#my-element {
-webkit-user-select: none;
-khtml-user-drag: none;
-khtml-user-select: none;
-moz-user-select: none;
-moz-user-select: -moz-none;
-ms-user-select: none;
user-select: none;
}
</style>

<div>one</div>
<div oncontextmenu="return false" onmousedown="return false" onmouseup="return false" id="my-element" onselectstart="return false">two</div>
<div>three</div>
</body> </html>
تو این کد اگه دایو اولی یعنی one یا دایو سومی یعنی three رو کامنت کنیم اون وقت دایو دومی یعنی two کپی نمیشه و در عیر اینصورت انتخاب نمیشه اما کپی میشه(clipboard)
ممنون میشم راهنمایی کنید.

dreadful
چهارشنبه 24 تیر 1394, 10:44 صبح
ببین این به دردت میخوره ؟!




function disableselect(e){
return false
}
function reEnable(){
return true
}
document.onselectstart=new Function ("return false")
if (window.sidebar){
document.onmousedown=disableselect
document.onclick=reEnable
}



+ این کارا بی فایدست !

sara_1234
چهارشنبه 24 تیر 1394, 12:40 عصر
ببین این به دردت میخوره ؟!




function disableselect(e){
return false
}
function reEnable(){
return true
}
document.onselectstart=new Function ("return false")
if (window.sidebar){
document.onmousedown=disableselect
document.onclick=reEnable
}



+ این کارا بی فایدست !

متشکر از پاسختون اما این کد کلا جلوی سلکت و کپی رو میگیره درصورتیکه من فقط میخوام بخشی از اون قابل سلکت و کپی نباشه مثلا تو این فایل html فقط دایو مربوط به two قابل کپی نباشه و بقیه سلکت و کپی بشه