你将如何解码在JavaScript中的节点红色msg.payload内的HTML实体?

作为一个实验的一部分,我正在使用Node-Red。 我创build了一个简单的工作stream程,只需点击一个button,就可以从各种网站中embedded(下载html内容)到自己的页面上。

但是,提取的HTML, msg.payload会自动被编码为HTML。 因此,而不是经常地<div> ,我会得到&lt;div class=&quot;shot&quot;&gt; 。 这破坏了这个想法。

有了“function节点”,我可以将任何Javascript应用到msg.payload,从而提取HTML。 我需要find一种将HTML实体解码为好HTML的方法。

默认情况下, msg.payload已经包含提取的内容,所以如果需要,你可以在Javascript var中使用它。

 var x = msg.payload 

所以tl;博士:我如何解码HTML实体只有Javascript?


如果您想用我的工作stream程“摆弄”,请复制并粘贴以下代码。

 [{"id":"b05c9e5a.4fa36","type":"http request","name":"Get to Dribbble","method":"GET","ret":"obj","url":"https://dribbble.com/search?utf8=%E2%9C%93&q=flat+design&s=latest","x":181,"y":169,"z":"9b321f64.64cde","wires":[["93dfb5e5.6c2048"]]},{"id":"c3be5c2.f3c41a","type":"inject","name":"","topic":"","payload":"","payloadType":"none","repeat":"","crontab":"","once":false,"x":156,"y":106,"z":"9b321f64.64cde","wires":[["b05c9e5a.4fa36"]]},{"id":"93dfb5e5.6c2048","type":"html","name":"Get each Dribbble","tag":".dribbble","ret":"html","as":"multi","x":188,"y":257,"z":"9b321f64.64cde","wires":[["ef6b650e.109498"]]},{"id":"cea8d694.315728","type":"file","name":"","filename":"dribbble/dribbbleFile.html","appendNewline":true,"overwriteFile":"true","x":895,"y":302,"z":"9b321f64.64cde","wires":[]},{"id":"6a37543c.95c8ac","type":"template","name":"","field":"payload","format":"handlebars","template":"<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t <title>Document</title>\n <link href=\"http://iscs.nl/dribbble.css\"></link>\n</head>\n<body>\n\nThis is the payload: {{payload}} !\n\t\n</body>\n</html>\n\n\n\n\n\n","x":676,"y":303,"z":"9b321f64.64cde","wires":[["cea8d694.315728"]]},{"id":"ef6b650e.109498","type":"function","name":"","func":"return msg;","outputs":1,"noerr":0,"x":492,"y":303,"z":"9b321f64.64cde","wires":[["6a37543c.95c8ac"]]}] 

它是您的stream程中的模板节点正在转义的HTML实体。 在Template节点使用的mustard sytanx中,为了阻止它转义HTML,你必须使用三个大括号:

 {{{payload}}}