考虑:

/**

* Returns the style for a node.

*

* @param n The node to check.

* @param p The property to retrieve (usually 'display').

* @link http://www.quirksmode.org/dom/getstyles.html

*/

this.getStyle = function( n, p ) {

return n.currentStyle ?

n.currentStyle[p] :

document.defaultView.getComputedStyle(n, null).getPropertyValue(p);

}

/**

* Converts HTML to text, preserving semantic newlines for block-level

* elements.

*

* @param node - The HTML node to perform text extraction.

*/

this.toText = function( node ) {

var result = '';

if( node.nodeType == document.TEXT_NODE ) {

// Replace repeated spaces, newlines, and tabs with a single space.

result = node.nodeValue.replace( /\s+/g, ' ' );

}

else {

for( var i = 0, j = node.childNodes.length; i < j; i++ ) {

result += _this.toText( node.childNodes[i] );

}

var d = _this.getStyle( node, 'display' );

if( d.match( /^block/ ) || d.match( /list/ ) || d.match( /row/ ) ||

node.tagName == 'BR' || node.tagName == 'HR' ) {

result += '\n';

}

}

return result;

}

也就是说,有一个例外或两个,遍历每个节点并打印其内容,让浏览器的计算样式告诉你什么时候插入换行符。

js追加html内容换行符,javascript – 从HTML中提取文本,同时保留块级元素换行符相关推荐

  1. js中的块级元素和行级元素

    块级元素和行内元素的定义 块级元素 总是在新行上开始: 高度,行高以及外边距和内边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度. 它可以容纳内联元素和其他块元素 行内元素 和其他元素都 ...

  2. html块中的内容垂直居中,css如何设置行内元素与块级元素的内容垂直居中

    首先我们先了解一下行内元素和块级元素 行内元素(内联元素):没有自己的独立空间,它是依附于其他块级元素存在的,空间大小依附于内容多少.行内元素没有度.宽度.内外边距等属性. 块级元素:占据独立的空间, ...

  3. 【原】如何实现IE6下块级元素的内容自动收缩

    近期在做提示层组件的开发,遇到了一个IE6常见的bug....想出了几个解决的办法,挺有意思的,这里分享给大家. 由于IE6浏览器中,display:inline-block只能触发IE的haslay ...

  4. html 提取pdf,使用PDF.js从PDF中提取文本(2019)

    正如标题所说,我正在尝试使用由Mozilla维护的PDF.js从PDF中提取文本.我知道前面关于stackoverflow的问题,但我不知道从哪里开始. 我试着跟着这个 article 这件事我需要帮 ...

  5. php 提取文字,如何使用PHP从word文档中提取文本内容?

    我想用PHP从word文档中提取文本内容. 我在Microsoft Word for Mac 2011中创建了一个新的单词文档. 编辑:也通过在Windows 7中的Microsoft Word中创建 ...

  6. c语言实现字符串中提取数字,遇到非字符串则换行

    思路:将str里面的数字复制到deststr中,如果是非数字则赋值一个换行符 难点在于换行符添加后,deststr需要步进1,所以设置两个计数器strno和destno用于控制deststr何时步进

  7. java 正则提取$ 中内容_JAVA 使用正则从文字中提取想要的内容

    有时候我们想从一段文字中提取想要的内容,如省市区地址中提取出省市,从股票的数据中提取出关键的价格信息,抓取HTML文件后提取内容等等这些场景,这时我们可以使用JAVA正则表达式帮助我们提取出想要的数据 ...

  8. 使用 JavaScript 从字符串中提取数字

    在 JavaScript 中,有多种方法可以从字符串中提取数字.一种方法是使用 match() 方法和正则表达式来搜索字符串中的所有数字.另一种方法是使用 replace() 方法和正则表达式从字符串 ...

  9. jq输出html 单引号引号转义符,javascript - 由于JSON中的单引号转义,jQuery.parseJSON抛出“无效的JSON”错误...

    根据JSON网站上的状态机图,只允许转义双引号字符,而不是单引号. 单引号字符不需要转义: 更新 - 有兴趣的人的更多信息: Douglas Crockford没有具体说明为什么JSON规范不允许字符 ...

最新文章

  1. Linux疑难杂症解决方案100篇(十二)-ubuntu中安装ftp服务器
  2. vue click事件_vue指令用法
  3. php 正则分隔_探讨PHP函数split()如何使用正则表达式切割字符串
  4. GDAL源码剖析(八)之编译GEOS和PROJ4库
  5. 测试librdkafka
  6. 【每日新闻】三星折叠手机媒体试用出故障:屏幕失灵 铰链处凸起
  7. mac终端查看IP信息
  8. html5的calc,CSS 计算属性 calc()的完整指南(下)
  9. python 麻将算胡,快速算法 没有递归,不超过100行
  10. 【论文翻译】The Quantum Internet: Networking Challenges in Distributed Quantum Computing
  11. Google全系列产品不再信任赛门铁克某款根证书-转载
  12. MySQL 自增序号
  13. php 随机生成邮箱,php 生成随机帐号密码邮箱
  14. ubuntu中的apt终端命令解析
  15. 找工作必看:上海知名互联网公司盘点(全)
  16. z—libirary最新地址获取,zlibirary地址获取方式,zliabary最新地址,zliabary官网登录方式,zliabary最新登陆
  17. 微信小程序学习文档指南
  18. android AOSP 下载
  19. python医学科研中能做什么-排名第一的Python语言,是如何应用于医疗临床?
  20. 桌面显示电脑配置的PE_你还用软件看电脑配置?分享三种无需软件查看配置的方法...

热门文章

  1. 实现Activity的透明效果
  2. EN 622-1 纤维板规范第一部分:一般要求
  3. struct timeval 结构体使用浅析
  4. Linux学习路线图(从入门到上岗,带自学路线图)
  5. Portscan一款局域网端口扫描器
  6. 玩转云端 | 看天翼云iBox智能盒子如何实现边缘侧的“神机妙算”
  7. 三种方法使图片变成灰色(前端技术)
  8. Android源码的结构
  9. phy芯片的那些事儿
  10. 使用SSM框架上传图片