diff --git a/src/platform/platform.dom.js b/src/platform/platform.dom.js index 7cbe719f27d..8e7858f750a 100644 --- a/src/platform/platform.dom.js +++ b/src/platform/platform.dom.js @@ -382,6 +382,6 @@ export default class DomPlatform extends BasePlatform { */ isAttached(canvas) { const container = _getParentNode(canvas); - return !!(container && _getParentNode(container)); + return !!(container && container.isConnected); } } diff --git a/test/specs/platform.dom.tests.js b/test/specs/platform.dom.tests.js index 7e6ab03e54f..b3b05a5cacf 100644 --- a/test/specs/platform.dom.tests.js +++ b/test/specs/platform.dom.tests.js @@ -408,17 +408,22 @@ describe('Platform.dom', function() { var platform = new DomPlatform(); var canvas = document.createElement('canvas'); var div = document.createElement('div'); + var anotherDiv = document.createElement('div'); expect(platform.isAttached(canvas)).toEqual(false); div.appendChild(canvas); expect(platform.isAttached(canvas)).toEqual(false); - document.body.appendChild(div); + anotherDiv.appendChild(div); + expect(platform.isAttached(canvas)).toEqual(false); + document.body.appendChild(anotherDiv); expect(platform.isAttached(canvas)).toEqual(true); + anotherDiv.removeChild(div); + expect(platform.isAttached(canvas)).toEqual(false); div.removeChild(canvas); expect(platform.isAttached(canvas)).toEqual(false); - document.body.removeChild(div); + document.body.removeChild(anotherDiv); expect(platform.isAttached(canvas)).toEqual(false); }); });