HTML 可以在 Internet Explorer 中将文本区域设为“只读”吗?

Posted

技术标签:

【中文标题】HTML 可以在 Internet Explorer 中将文本区域设为“只读”吗?【英文标题】:Can HTML make a textarea "readonly" in Internet Explorer? 【发布时间】:2013-11-28 00:33:21 【问题描述】:

我有一个表单,它使用 javascript 用一些文本填充文本区域。用户应该能够复制文本,并且我使用下面的代码将 textarea 设为只读。

<textarea readonly id="newList" name="newList" placeholder="When you click 
 the button below, your list appears here.  Copy and paste it into your 
 new document. Use CTRL-A to quickly select all items."></textarea>

在 Chrome 中效果很好,但在 IE10 中,文本区域仍然不是只读的,当用户单击它时,他们想要复制的文本消失了,取而代之的是光标。它与我的 javascript 无关——我从 html 中删除了“脚本”行,这仍然会发生。

有没有一种简单的方法可以在 Internet Explorer 中将 textarea 设为只读?

【问题讨论】:

【参考方案1】:

我正在 IE10 中尝试该确切代码,并且 textarea 是只读的,但是当您单击它时,占位符文本会消失。我相信这是 IE 的正常行为。您是否将需要复制的文本放在占位符属性中?如果是这样,那就是问题所在。

包含需要复制的文本的文本区域应如下所示:

<textarea readonly id="newList" name="newList">Text that needs to be copied...</textarea>

它也可以添加占位符属性,但占位符属性中指定的文本将不再显示。

另外请注意,如果您使用 disabled 属性,您将无法复制 textarea 中的文本。

【讨论】:

我没有把它放在占位符属性中。我正在使用 var foo =createTextNode(newList.join("\n"));然后 appendChild 到 textarea。这是否会无意中将其放入占位符属性中? 这太疯狂了。你会认为 IE10 能够处理一个简单的“只读”HTML 属性。【参考方案2】:

您可以禁用您的 textarea,但这不仅会阻止它可编辑,而且意味着它不会在提交时发送 - 因此,如果这是一个好主意,这取决于您想如何使用它。

您可以在文本区域中添加一个 onFocus() 事件,以在用户点击进入文本区域时将其移出。

【讨论】:

禁用文本区域意味着用户将无法选择和复制内容...

以上是关于HTML 可以在 Internet Explorer 中将文本区域设为“只读”吗?的主要内容,如果未能解决你的问题,请参考以下文章

Grafana系列-统一展示-10-Explore Jaeger

5种IE hasLayoutt的属性及其值

Python知乎热门话题爬取

IBM MQ Explore使用

keynote和reading explore哪个好

Microsoft Ignite The Tour Beijing 记录: Learn Connect Explore