2012-06-26 82 views
0

在Web應用程序中,我想使用jquery觸發對話框。該對話框用於提供用戶(Ctrl-C)將要複製到剪貼板的字符串。爲了使事情變得簡單,我想選擇(突出顯示)指定爲textarea的值的字符串。另外,我還將點擊處理程序綁定到選擇內容,以便用戶在單擊時不取消選擇內容。使用jquery _nearly_作品選擇html textarea的內容,但

但是使用Firefox(FF 13.0.1/Linux),這是行不通的。該對話框觸發,textarea接受內容。綁定工作正常。只是在明確的點擊之後,內容的選擇根本不起作用。

所以我創建了一個簡單的例子: http://jsfiddle.net/4CK7Y/2/

它包含以下代碼:

HTML:

<div> 
    <fieldset> 
     <textarea id="payload"></textarea> 
    </fieldset> 
</div> 

JS/JQuery的:

$('#payload').val("some text"); 
$('#payload').select(); 
$('#payload').click(function(){this.select();}); 

我很驚訝地發現這在大多數瀏覽器中都能正常工作:K onqueror,Rekonq,Opera。 但是,在Firefox中,這僅適用於全新重新加載。如果你點擊「運行」,你會看到問題:儘管代碼被重新執行,textarea的內容沒有被選中而沒有被點擊。

這是什麼原因?我能做些什麼?

+1

你可以在你的問題中包含代碼,以便將來的問題可以保留下來供後人學習嗎? (鏈接隨着時間消失) – Jake1164

+0

@ Jake1164:完成。 – arkascha

回答

0

因爲textarea在頁面加載時沒有自動獲得焦點。將焦點()事件附加到文本文件$(document).ready()

+0

select()不會將焦點賦予textarea? – arkascha

+0

select()具有不同的用法。 ** focus()**用於聚焦... – SexyBeast

+0

好吧,我試圖將焦點設置在textarea上,但是我無法獲得理想的效果。在$(document).ready()函數中設置焦點不適用於我。 另外:我希望「運行」按鈕重新執行腳本。所以在那裏添加一個焦點()應該可以工作。但它不會那麼好。在原始場景中,我無法使用$(document).ready()函數,因爲該對話框是從正在運行的函數中觸發的。 – arkascha

相關問題