2012-07-14 38 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/