0

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

该选择适用于一个文本区域,而不适用于另一个。我为此绞尽脑汁好几个小时都没有运气。我试图在一个很小的代码片段中重现这一点以说明问题,但这也没有奏效。

因此,要朝另一个方向发展,有没有办法禁止从特定于 IE 且不需要特定 javascript 代码的文本区域中选择文本?我没有编写任何特定代码来禁用文本区域中的文本选择。

例如,如果我有这个 textarea

<textarea>Some Text</textarea>

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

举个例子。

$('textarea').select();

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

我还重置了 IE 并确保启用了复制“拖放或复制和粘贴”。

我会将其归为浏览器错误并编写自己的错误,但由于它在一种情况下工作而不是在另一种情况下工作,所以我没有看到在后台发生的事情。

4

3 回答 3

1

哟不能像这样引用文本区域。您必须使用 id。

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

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

​</p>

于 2012-10-02T22:20:45.363 回答
1

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

    if (typeof self.node.onselectstart !== 'undefined') {
        self.node.onselectstart = function() {
            return false;
        };
    }
于 2012-10-03T00:06:15.377 回答
1

按 ID 选择对我来说非常好:

jsfiddle链接

于 2012-10-02T22:17:25.317 回答