2012-07-14 60 views
0

Opera使我疯狂。处理选择(离子)是真正的挑战。我无法禁用Opera的选择。通过鼠标或Ctrl + A选择仍然有效。歌剧真的很糟糕,还是有一些解决方案或解决方法可用?在Opera中禁用选择(离子)


我的CSS:

::selection { 
    background: transparent; 
} 

::-moz-selection { 
    background: transparent; 
} 

* { 
    user-select: none; 
    -khtml-user-select: none; 
    -moz-user-select: none; 
    -ms-user-select: none; 
    -o-user-select: none;   // for future? compatibility 
    -webkit-user-select: none; 
} 

我的javascript:

var elements = document.getElementsByTagName('*'); 
for (var i = 0; i < elements.length; i++) { 
    elements[i].setAttribute('unselectable', 'on'); 
} 

没有什么帮助。请指教。

例如:(如果您有Opera可用)转到this小提琴,单击“结果”部分并按Ctrl + A。

+0

检查,看看是否该解决方案在http://stackoverflow.com/questions/6299984/disable-text-selection-提到除了输入或http://stackoverflow.com/a/4656495有帮助吗? – 2012-07-14 15:30:30

+0

@CodeCanvas - 谢谢,但不是...我的问题是关于选择一般,而不是仅文本。 – 2012-07-14 15:43:21

+1

报告为bug https://bugs.opera.com/browse/CORE-4736。 – 2012-07-16 11:48:47

回答

0

请使用此脚本尝试:

<script type="text/javascript"> 
    disableSelection(document.body) 
</script> 

<script type="text/javascript"> 
    function disableSelection(target){ 
     if (typeof target.onselectstart!="undefined") //IE route 
      target.onselectstart=function(){return false} 
     else if (typeof target.style.MozUserSelect!="undefined") //Firefox route 
      target.style.MozUserSelect="none" 
     else //All other route (ie: Opera) 
      target.onmousedown=function(e){if(e && e.target && e.target.tagName){if(/^(input|select)$/i.test(e.target.tagName)){return true;}}return false;} 
     target.style.cursor = "default" 
    } 
</script> 

小提琴:http://jsfiddle.net/8qadwtzo/