diff --git a/core/src/services/iframe.js b/core/src/services/iframe.js index 3529c4119b..3635e25b65 100644 --- a/core/src/services/iframe.js +++ b/core/src/services/iframe.js @@ -57,15 +57,6 @@ class IframeClass { ); } - removeIframe(iframe, node) { - const children = Array.from(node.children); - children.forEach(child => { - if (child === iframe) { - node.removeChild(child); - } - }); - } - getPreservedViewsInDom(iframes) { return iframes.filter(iframe => iframe.pv); } @@ -157,6 +148,7 @@ class IframeClass { if (config.navigateOk) { config.navigateOk = undefined; } else { + IframeHelpers.removeIframe(config.iframe, node); config.iframe = undefined; config.isFallbackFrame = true; console.info( diff --git a/core/src/utilities/helpers/iframe-helpers.js b/core/src/utilities/helpers/iframe-helpers.js index 906043f4d4..37ef2cebef 100644 --- a/core/src/utilities/helpers/iframe-helpers.js +++ b/core/src/utilities/helpers/iframe-helpers.js @@ -38,6 +38,15 @@ class IframeHelpersClass { }); } + removeIframe(iframe, node) { + const children = Array.from(node.children); + children.forEach(child => { + if (child === iframe) { + node.removeChild(child); + } + }); + } + replaceVars(viewUrl, params, prefix, parenthesis = true) { let processedUrl = viewUrl; if (params) { diff --git a/core/test/services/iframe.spec.js b/core/test/services/iframe.spec.js index 1f7f67ed5e..b0f1ef9697 100644 --- a/core/test/services/iframe.spec.js +++ b/core/test/services/iframe.spec.js @@ -127,19 +127,6 @@ describe('Iframe', () => { }); }); - it('removeIframe', () => { - const testNode = { - children: ['one', 'two', 'three', 'four'], - removeChild: sinon.spy() - }; - Iframe.removeIframe('two', testNode); - assert.equal(testNode.removeChild.callCount, 1, 'removeChild call count'); - assert( - testNode.removeChild.calledWith('two'), - 'correct node child was deleted' - ); - }); - describe('create new iframe with different viewgroup and dont delete the previous one (cache)', () => { it('navigate', () => { sinon.stub(IframeHelpers, 'getMainIframes').callsFake(() => [ diff --git a/core/test/utilities/helpers/iframe-helpers.spec.js b/core/test/utilities/helpers/iframe-helpers.spec.js index 23e34f5124..9c65b7111f 100644 --- a/core/test/utilities/helpers/iframe-helpers.spec.js +++ b/core/test/utilities/helpers/iframe-helpers.spec.js @@ -81,6 +81,19 @@ describe('Iframe-helpers', () => { }); }); + it('removeIframe', () => { + const testNode = { + children: ['one', 'two', 'three', 'four'], + removeChild: sinon.spy() + }; + IframeHelpers.removeIframe('two', testNode); + assert.equal(testNode.removeChild.callCount, 1, 'removeChild call count'); + assert( + testNode.removeChild.calledWith('two'), + 'correct node child was deleted' + ); + }); + describe('canReuseIframe', () => { const config = { iframe: {