2012-06-26 35 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

相关问题