`
haojinghua
  • 浏览: 54286 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

IE9 bug: 在textarea中复制内容会丢失换行符

 
阅读更多

IE9 bug: 在textarea中复制内容会丢失换行符

 

这是我们在实际开发中实实在在遇到的问题,没有任何悬念。这个问题就是:

在IE9中,在HTML多行文本框textarea中输入带有换行的内容,比如在这篇随笔下面的评论框中输入,然后选中文本框中的内容Ctrl+C/Ctrl+V粘贴到记事本中,所有换行符会丢失,变成一行。

经过测试,在IE6, IE8, Chrome, Firefox中都不存在这个问题。

stackoverflow上也提到了这个问题 - IE9 and TEXTAREA newlines,并提供了你轻意不会采用的解决方法,就是让IE9倒退至IE7,在<head>中添加如下代码:

<!-- Mimic Internet Explorer 7 -->
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" >

一个很小的问题,却给我们实现一个功能带来了大麻烦!

园子里找了找,huajs还发现了IE9的另外一个bug(详见发现了IE9里的一个bug),也是针对textarea的,这里也拿出来示众一下。

简而言之,就是IE9会解析textarea中的html代码,测试代码如下(代码来源):

复制代码
<!DOCTYPE HTML>
<html>
<head>
    <title></title>
</head>
<body>
<textarea id="t" rows="6"></textarea>
<script>
var t = document.getElementById("t");
t.innerHTML = "<p style='color:red'>aaaa</p>";  // 只能在IE9中被解析,其他浏览器不解析
/*下边是我自己测试的结论:
 textarea表示文本区域,本应该把它里边的各种文字、标签等显示成纯文本的形式。
    直接把诸如
    <p style='color:red'>aa</p>的html形式标签放到textarea里,在IE9及其他浏览器里都会把P标签显示出来,
    这个应该是正确的解析,没什么问题。
    但是,把
    <p style='color:red'>aa</p>
    通过JS的innerHTML向textarea里插入,就能(只能)被IE9解析成红色的aa,把p标签当成html标签解析,
    p被过滤掉了(注意,<!DOCTYPE>的文档声明必须要加上,不加的话,IE9就不会解析p标签了)。
    当然,textarea里一般不应该用innerHTML方法插入内容。
    
*/
</script>
</body>
</html>
复制代码
分享到:
评论

相关推荐

    textarea换行符

    当用户在`textarea`中按下回车键时,浏览器会将其识别为换行符(`\r\n`),这在JavaScript读取`textarea`的值时也会体现出来。然而,在后续的数据处理过程中,例如在业务逻辑层将这些值转换成字符串形式并存储到...

    MySQL数据中很多换行符和回车符的解决方法

    发现问题 今天一大早客户给我打电话:“小陈儿,昨晚我往数据库导了几十万条数据,然后在...如:库中数据为:“换行符\n换行符\n换行符”,然后在界面通过如下SQL查询,那自然是搜不到咯! SELECT * from `LOL` where

    php表单转换textarea换行符的方法

    1.必须知道textarea中的换行符是 \n (个人检测发现按回车键是\n,好像在linux下是\r\n) 2.用nl2br之前,请仔细看好手册解释,我就是搞郁闷了,一般都理解为将\n转换成 ,其实不是的: 看php手册解释: nl2br – ...

    后台读取文本内容用正则表达式替换换行符

    中的回车符给困扰着, 回车换行的内容(\r\n)经常需要显示为HTML中的 ,这时就需要做替换操作了。 如果只是简单的将字符串strObj调用replace()方法,则结果只替换第一个回车符, 问题不难,关键是得...

    浅谈mysql数据库中的换行符与textarea中的换行符

    这是因为MySQL只认识`\n`作为换行符,而`\r\n`在数据库中会被当作普通字符存储,导致在显示时无法正确换行。以下是在Django中进行转换的示例代码: ```python # data为从textarea获取的数据,包含`\r\n`换行符 data...

    HTML里面Textarea换行问题总结

    问题描述: 比如get数据到一个TextArea里面,如“AAA BBB”,想把这段文字在TextArea里面真正按行存放,而不是显示出来按行存放(所谓的真正按行存放就是,再把这个TextArea的数据post到另外一个页面的Textarea里面...

    Vue下textarea文本框根据内容自适应改变高度

    一种可能的解决方案是使用CSS的`resize`属性,将其设置为`none`,以禁用用户的缩放功能,这在某些版本的IE中可以帮助解决问题。 ```css :auto-height-textarea textarea { resize: none; } ``` 现在,我们的Vue...

    ie特有bug文档

    - **问题描述**:在IE6/7中,如果`form`标签内的某个具有`hasLayout`属性的子元素设置了`margin-left`,则其中的`&lt;input&gt;`或`&lt;textarea&gt;`元素会出现双倍的`margin-left`。 - **解决方案**: - 为`form`标签内的`...

    textarea

    如果设置了`wrap="soft"`,则`textarea`中的文本将会软换行,即当文本超出容器宽度时会自动换行到下一行,但这种换行并不会作为真正的换行符保存在提交的数据中。 ```html &lt;textarea wrap="soft" style="width: 200...

    javascript去掉拷贝数据中带换行数据到文本框

    在这种情况下,拷贝的数据可能会包含换行符,这可能会影响用户的输入体验,特别是在搜索框等需要连续文本的场景下。本文将详细介绍如何使用JavaScript有效地去除这些换行数据,确保文本框内的内容保持连续。 首先,...

    VC实现向TextArea中写入内容

    在VC++开发中,将内容写入到TextArea控件通常是为了解决用户界面与程序数据交互的问题。在传统的MFC框架下,TextArea通常指的是编辑框(CEdit)或多行编辑框(CMultiLine),而这里提及的是非COM方式,意味着我们将...

    IE6-9placeholder、textarea-maxlength的修复;实时用户输入捕捉

    IE6-9 input和textarea元素的placeholder(占位符)属性与textarea元素的maxlength(最大长度限制)属性的修复与所有浏览器的实时输入捕捉,仅需要提供一个元素或者元素id与实时捕捉回调函数(可选)。甚至实现了各...

    textarea文本框删除当前行内容的功能

    在某些场景下,我们可能需要实现一个功能,即当用户点击某个按钮时,删除`textarea`中当前光标所在行的内容。这个功能在编辑器、表单或任何需要处理多行文本的界面中都很实用。本文将详细讲解如何实现这一功能,并...

    HTML5&CSS3网页制作:textarea元素.pptx

    如果设置为`wrap="hard"`,则不仅在屏幕上换行,还会在用户提交数据时在源代码中添加换行符。 以下是一个简单的`textarea`元素示例: ```html &lt;textarea cols="30" rows="10"&gt; 请输入您的多行文本... &lt;/textarea&gt; `...

    jsp实现textarea中的文字保存换行空格存到数据库的方法

    用户在其中输入的文本会以换行符(\n)进行分隔,如果用户按下Enter键,系统会自动插入一个换行符。 在JSP页面中,我们通常会用表单(form)来提交textarea中的内容到服务器。在上述的示例代码中,用户输入的数据会...

    [转]TextArea TextField 文本 即时显示最后一行

    在本文中,我们将深入探讨“TextArea”和“TextField”这两个在ActionScript 3(AS3)中用于处理文本输入的组件,以及如何实现文本即时显示最后一行的功能。这个功能在日志查看、聊天应用或任何需要实时跟踪文本更新...

    文本域中换行符的替换示例

    如果我们不小心处理换行符,可能会导致文本域中的换行符丢失,影响用户的体验。今天,我们将讨论文本域中换行符的替换示例,解决这个常见的问题。 文本域中换行符的替换示例主要介绍了如何在文本域中处理换行符的...

    textarea去除多余空格和回车的方法及其属性

    错误的做法是将`&lt;/textarea&gt;`放在新的一行,这会导致换行符和空格被计入`textarea`的内容中。正确的做法是确保`&lt;textarea&gt;`和`&lt;/textarea&gt;`在同一行内,如下所示: ```html &lt;textarea&gt;你好&lt;/textarea&gt; ``` 2. `...

    处理textarea换行空格

    1. **换行符的处理**:在提交`textarea`的内容到服务器时,你可能会遇到需要将`\n`转换为数据库支持的换行格式,如`\r\n`(在Windows系统中)。这可以通过JavaScript的字符串替换函数`replace()`实现,如下所示: `...

Global site tag (gtag.js) - Google Analytics