Skip to content

Commit 0669610

Browse files
committed
Protect innerHTML from embedded scripts
1 parent dc4ca39 commit 0669610

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

src/html2pdf.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,7 @@ var html2pdf = (function(html2canvas, jsPDF) {
8080
if (!source) {
8181
throw 'Missing source element or string.';
8282
} else if (objType(source) === 'string') {
83-
var htmlStr = source;
84-
source = document.createElement('div');
85-
source.innerHTML = htmlStr;
83+
source = createElement('div', { innerHTML: source });
8684
} else if (objType(source) === 'element') {
8785
source = source.cloneNode(true);
8886
} else {
@@ -217,7 +215,13 @@ var html2pdf = (function(html2canvas, jsPDF) {
217215
var createElement = function(tagName, opt) {
218216
var el = document.createElement(tagName);
219217
if (opt.className) el.className = opt.className;
220-
if (opt.innerHTML) el.innerHTML = opt.innerHTML;
218+
if (opt.innerHTML) {
219+
el.innerHTML = opt.innerHTML;
220+
var scripts = el.getElementsByTagName('script');
221+
for (var i = scripts.length; i-- > 0; null) {
222+
scripts[i].parentNode.removeChild(scripts[i]);
223+
}
224+
}
221225
for (var key in opt.style) {
222226
el.style[key] = opt.style[key];
223227
}

0 commit comments

Comments
 (0)