html 判断img lujing 字符 whitespace,如何检测HTML内容呈现时是空白/空格?

这是我想出的答案。它使用假设在页面上呈现的标记的白名单,无论它们是否具有内容 - 假定所有其他标记仅在具有实际文本内容时才呈现。一旦你有了这个,实际上解决方案相当简单 - 它依赖于innerText属性自动去除所有标签的事实。

该解决方案还忽略了渲染基于CSS元件(例如块具有背景颜色或其中的内容被设定为:after或:before伪元素),但幸运的是,这是不相关的我的使用情况。

function htmlIsWhitespace(input) {

\t var visible = [

\t \t \t 'img','iframe','object','hr',

\t \t \t 'audio', 'video',

\t \t \t 'form', 'button', 'input', 'select', 'textarea'

\t \t ],

\t \t container = document.createElement('div');

\t container.innerHTML = input;

\t return !(container.innerText.trim().length > 0 || container.querySelector(visible.join(',')));

}

// And the tests (I believe these are comprehensive):

var testStringsYes = [

\t \t "",

\t \t "",

\t \t "",

\t \t " ",

\t \t "  ",

\t \t "   ",

\t \t "    ",

\t \t "

   

",

\t \t "

   

 

\t \t "

\n \n

\t ],

\t testStringsNo = [

\t \t "  hi",

\t \t "#foo",

\t \t "


",

\t \t "

\t \t "

\t \t "

\t \t "

bye
",

\t \t "

\t \t "

\t \t '

',

\t \t '',

\t \t '1',

\t \t '',

\t \t '',

\t \t '

',

\t \t '',

\t \t 'Push',

\t \t "yo"

\t ];

for(var yy=0, yl=testStringsYes.length; yy < yl; yy += 1) {

\t console.debug("Testing", testStringsYes[yy]);

\t console.assert(htmlIsWhitespace(testStringsYes[yy]));

}

for(var nn=0, nl=testStringsNo.length; nn < nl; nn += 1) {

\t console.debug("Testing", testStringsNo[nn]);

\t console.assert(!htmlIsWhitespace(testStringsNo[nn]));

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值