Browse Source

Add parse:html event

pull/3073/head
Artur Arseniev 5 years ago
parent
commit
6d217699ff
  1. 23
      src/parser/model/ParserHtml.js

23
src/parser/model/ParserHtml.js

@ -271,12 +271,13 @@ export default config => {
* @return {Object}
*/
parse(str, parserCss) {
var config = (c.em && c.em.get('Config')) || {};
var res = { html: '', css: '' };
var el = document.createElement('div');
const { em } = c;
const config = (em && em.get('Config')) || {};
const res = { html: '', css: '' };
const el = document.createElement('div');
el.innerHTML = str;
var scripts = el.querySelectorAll('script');
var i = scripts.length;
const scripts = el.querySelectorAll('script');
let i = scripts.length;
// Remove all scripts
if (!config.allowScripts) {
@ -285,9 +286,9 @@ export default config => {
// Detach style tags and parse them
if (parserCss) {
var styleStr = '';
var styles = el.querySelectorAll('style');
var j = styles.length;
const styles = el.querySelectorAll('style');
let j = styles.length;
let styleStr = '';
while (j--) {
styleStr = styles[j].innerHTML + styleStr;
@ -297,11 +298,9 @@ export default config => {
if (styleStr) res.css = parserCss.parse(styleStr);
}
var result = this.parseNode(el);
if (result.length == 1) result = result[0];
const result = this.parseNode(el);
res.html = result;
em && em.trigger('parse:html', { input: str, output: res });
return res;
}

Loading…
Cancel
Save