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 中将文本区域设为“只读”吗?的主要内容,如果未能解决你的问题,请参考以下文章