diff --git a/src/purify.ts b/src/purify.ts index 631b70cd..458a8e92 100644 --- a/src/purify.ts +++ b/src/purify.ts @@ -125,7 +125,8 @@ function createDOMPurify(window: WindowLike = getGlobal()): DOMPurify { if ( !window || !window.document || - window.document.nodeType !== NODE_TYPE.document + window.document.nodeType !== NODE_TYPE.document || + !window.Element ) { // Not running in a browser, provide a factory function // so that you can pass your own Window diff --git a/test/test-suite.js b/test/test-suite.js index 17329d5c..4317f143 100644 --- a/test/test-suite.js +++ b/test/test-suite.js @@ -870,6 +870,18 @@ DOMPurify({ document: 'not really a document' }).sanitize, undefined ); + assert.strictEqual( + typeof DOMPurify({ ...window, Element: undefined }).version, + 'string' + ); + assert.strictEqual( + DOMPurify({ ...window, Element: undefined }).isSupported, + false + ); + assert.strictEqual( + DOMPurify({ ...window, Element: undefined }).sanitize, + undefined + ); assert.strictEqual(typeof DOMPurify(window).version, 'string'); assert.strictEqual(typeof DOMPurify(window).sanitize, 'function'); });