Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使Internet Explorer在将innerHTML传输到时包含所需的换行符?_Javascript_Internet Explorer 8_Escaping_Textarea_Innerhtml - Fatal编程技术网

Javascript 如何使Internet Explorer在将innerHTML传输到时包含所需的换行符?

Javascript 如何使Internet Explorer在将innerHTML传输到时包含所需的换行符?,javascript,internet-explorer-8,escaping,textarea,innerhtml,Javascript,Internet Explorer 8,Escaping,Textarea,Innerhtml,这个JavaScript程序的目的是使用户能够在社交网络上报告问题,并在其初始消息中包含所有相关信息 用户通过在由文本框和c组成的表单上回答一组问题来输入信息。答案用于创建字符串文本数组,这些字符串文本的元素连接起来形成单个字符串。该字符串随后显示在页面的末尾,供用户复制,然后粘贴到社交网络页面 到目前为止,这是通过使用document.getElementById'divName'.innerHTML将字符串放入一个设置中来实现的。这很好:适用于所有五种浏览器,甚至适用于Iphone 现在,为

这个JavaScript程序的目的是使用户能够在社交网络上报告问题,并在其初始消息中包含所有相关信息

用户通过在由文本框和c组成的表单上回答一组问题来输入信息。答案用于创建字符串文本数组,这些字符串文本的元素连接起来形成单个字符串。该字符串随后显示在页面的末尾,供用户复制,然后粘贴到社交网络页面

到目前为止,这是通过使用document.getElementById'divName'.innerHTML将字符串放入一个设置中来实现的。这很好:适用于所有五种浏览器,甚至适用于Iphone

现在,为了便于用户在发布报表之前对报表进行细微更改,并便于复制,我希望能够将报表放置在输入表单的一部分而不是一个表单中。这也很好:可以在Firefox、Chrome、Opera和Safari中使用——甚至可以在Iphone上使用——但是

不可避免的是,整个阅兵场上唯一一个步调一致的浏览器——MSIE——无法处理这个问题。它将信息放入–减去所有换行符。 数组已初始化:

function createReport() { // [0] and [21] are constant.
    outReportArray[0] = 'E M E R G E N C Y' + horizLine;
    for (i=1 ; i<outReportArray.length ; i++) {
        outReportArray[i] = '';
    }
    outReportArray[21] = 'Thank you.';
}
全局变量horizLine是一个m规则序列&8212;每端都有一个线路馈线

当用户浏览表单时,数组将更新:

outReportArray[element] = label + value + (underLine ? horizLine : '
');
还尝试了以下方法来生成换行符:'\n'、'\r\n'、'\r'、'&13;'、'&10;'


输出字符串将不断重新生成并粘贴到,以便当他到达表单底部时,按下“更新”按钮并简单地传输到“\n”应该可以工作。在IE 8中插入以下内容作为textarea元素的值,只会将返回值包装为方便:

  var s = 'E M E R G E N C Y\n' +
           '\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\n' +
           'Name: John Doe Land-line';
我用unicode值而不是HTML字符实体替换了-字符。您可能想使用\n\r,但我认为没有必要

哦,你也可以这样做:

  var t = ['E M E R G E N C Y',
           '\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014',
           'Name: John Doe Land-line'];
然后将该值设置为:

  t.join('\n') // or t.join('\u000d');

您也可以用\u000a代替换行符,\u000d代替换行符。

text区域与输入非常相似。为什么不使用value属性?

设置textarea的值,而不是其innerHTML。在HTML中,空白是被去除的——你应该从制作一个基本的网页就知道这一点。与其他浏览器不同,Internet Explorer做得很好…

请。
  var s = 'E M E R G E N C Y\n' +
           '\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\n' +
           'Name: John Doe Land-line';
  var t = ['E M E R G E N C Y',
           '\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014',
           'Name: John Doe Land-line'];
  t.join('\n') // or t.join('\u000d');