无法在IE中的textarea中选择文本

时间:2012-10-02 21:51:28

标签: javascript jquery html internet-explorer

我有几个案例,我使用textarea来显示数据库查询的一些源代码。这个想法是允许用户选择textarea中的所有文本,以便他们可以复制该代码并将其粘贴到其他地方。一切都很好,除了IE- {8,9},这是我唯一关心的两个IE浏览器。

选择适用于一个textarea而不适用于另一个。在没有运气的情况下,我已经绞尽脑汁待了好几个小时。我试图在一个很小的代码片段中重现这一点,以说明问题,但这也没有奏效。

所以,另一个方向是否有办法禁用从特定于IE的textarea中选择文本并且不需要特定的JavaScript代码?我没有编写任何特定代码来禁用textarea中的文本选择。

例如,如果我有这个textarea

<textarea>Some Text</textarea>

该文本如何仅在IE中无法选择?我还尝试使用jquery,javascript和DOM api以编程方式选择文本。除了IE- {8,9}之外,它适用于所有浏览器。

仅举例。

$('textarea').select();

我一直在思考一些事件监听器不存在的想法,但是由于IE开发人员的工具太棒了,我没有运气跟踪那些比较Chrome中列出的内容。 / p>

我还重置IE并确保复制&#39;拖放或复制并粘贴&#39;已启用。

我会把它当作一个浏览器bug并写下我自己的但是因为它在一个案例而不是另一个案例中起作用,所以在背景中发生的事情我似乎没有看到。

3 个答案:

答案 0 :(得分:1)

按ID选择对我来说非常合适:

jsfiddle link

答案 1 :(得分:1)

哟不能像这样引用textarea。你必须使用id。

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

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

答案 2 :(得分:1)

事实证明,有一个mixin覆盖了onselectstart方法。

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