2012-10-02 95 views
0

我有幾個使用textarea顯示數據庫查詢源代碼的情況。這個想法是允許用戶選擇textarea中的所有文本,以便他們可以複製該代碼並將其粘貼到其他位置。除IE- {8,9}以外,所有這一切都很好,這是我唯一關心的兩個IE瀏覽器。無法在IE中的文本區域中選擇文本

選擇適用於一個textarea而不適用於其他。我幾個小時沒有運氣就把我的頭腦搞糊塗了。我試圖在一個很小的代碼片段中重現這個問題來說明這個問題,但那也沒有奏效。

所以去它的另一個方向是有辦法禁用從IE特定的文本區域中選擇文本,並不需要特定的JavaScript代碼?我不寫任何特定的代碼來禁用textarea中的文本選擇。

例如,如果我有這樣的textarea

<textarea>Some Text</textarea> 

文本怎麼可能是不可選擇的只有IE瀏覽器?我也嘗試使用jquery,javascript和DOM api編程式地選擇文本。除IE- {8,9}外,其他所有瀏覽器都適用。

只是舉個例子。

$('textarea').select(); 

我思考的想法,有些事件監聽器是不存在的,但由於IE瀏覽器的開發者工具驚人的sooo我沒有任何運氣跟蹤那些頻比什麼在Chrome瀏覽器中列出。

我也重置IE並確保複製'拖放或複製和粘貼'啓用。

我會把它當成一個瀏覽器的bug並寫我自己的,但因爲它在一種情況下工作,而不是其他它看起來像在背景中發生的事情我沒有看到。

+0

你可以做'$(「文本區域」)[0]。選擇()'在IE9中,但它不會在IE7中工作或8 –

回答

1

呦不能引用這樣的textarea的。你必須使用一個ID。

<textarea id="foo">Some Text</textarea> 

<script type="text/javascript"> 
    $('#foo').select(); 
</script> 

+3

你忘了**#**之前foo :) –

+0

哦,謝謝。 :-) – Kedume

1

通過ID選擇工作完全正常,我:

jsfiddle link

+0

是啊,這是爲我工作的罰款,我只是遇到了麻煩找到問題。 – ralphinator80

1

好,因爲它原來有是被重寫焦點的時候方法的混入。

if (typeof self.node.onselectstart !== 'undefined') { 
     self.node.onselectstart = function() { 
      return false; 
     }; 
    } 
+0

一個開發人員重寫onselectstart,我在指責IE。謝謝你,救了我的一天:) – user1403588