From 0bd8e7a13d658013d84f8f802bbfa7f587bc298f Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Fri, 3 Jun 2016 13:55:40 +0200 Subject: [PATCH] Edit html parser which removes scripts --- src/parser/model/ParserHtml.js | 8 +++++++- test/specs/parser/model/ParserHtml.js | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/parser/model/ParserHtml.js b/src/parser/model/ParserHtml.js index b2472382f..ec5497f3d 100644 --- a/src/parser/model/ParserHtml.js +++ b/src/parser/model/ParserHtml.js @@ -157,7 +157,13 @@ define(function(require) { parse: function(str){ var el = document.createElement('div'); el.innerHTML = str; - var nodes = el.childNodes; + var scripts = el.querySelectorAll('script'); + var i = scripts.length; + + // Remove all scripts + while (i--) + scripts[i].parentNode.removeChild(scripts[i]); + var result = this.parseNode(el); if(result.length == 1) diff --git a/test/specs/parser/model/ParserHtml.js b/test/specs/parser/model/ParserHtml.js index df4c4494f..04c8ed04b 100644 --- a/test/specs/parser/model/ParserHtml.js +++ b/test/specs/parser/model/ParserHtml.js @@ -214,6 +214,13 @@ define([path + 'model/ParserHtml',], obj.parse(str).should.deep.equal(result); }); + it('Remove script tags', function() { + var str = '
'; + var result = [{ tagName: 'div'},{ tagName: 'div'}]; + console.log(obj.parse(str)); + obj.parse(str).should.deep.equal(result); + }); + }); }