From 7b0e70fe7f016cfb6cc8bbd3643f6805ca9e92e5 Mon Sep 17 00:00:00 2001 From: Andreas Fernandez Date: Wed, 31 Jan 2018 16:01:00 +0100 Subject: [PATCH] [BUGFIX] Access parent element in Element Browser correctly When the element browser is opened in a popup window, the parent element (=popup) is now accessed properly. This patch also fixes the case for `list_frame` which didn't work in Firefox. Resolves: #83693 Releases: master Change-Id: I2436942a239b868cd1e3e269c6161a9df92e05ff Reviewed-on: https://review.typo3.org/55511 Tested-by: TYPO3com Reviewed-by: Mathias Schreiber Tested-by: Mathias Schreiber Reviewed-by: Christian Kuhn Tested-by: Christian Kuhn --- .../Public/JavaScript/ElementBrowser.js | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/typo3/sysext/recordlist/Resources/Public/JavaScript/ElementBrowser.js b/typo3/sysext/recordlist/Resources/Public/JavaScript/ElementBrowser.js index ef1680bd380a..114f4c8f5976 100644 --- a/typo3/sysext/recordlist/Resources/Public/JavaScript/ElementBrowser.js +++ b/typo3/sysext/recordlist/Resources/Public/JavaScript/ElementBrowser.js @@ -87,23 +87,27 @@ define([ if ( typeof window.parent !== 'undefined' && typeof window.parent.document.list_frame !== 'undefined' && - window.parent.document.activeElement.classList.contains('t3js-modal-iframe') + window.parent.document.list_frame.parent.document.querySelector('.t3js-modal-iframe') !== null ) { opener = window.parent.document.list_frame; - } - else if ( + } else if ( + typeof window.parent !== 'undefined' && + typeof window.parent.frames.list_frame !== 'undefined' && + window.parent.frames.list_frame.parent.document.querySelector('.t3js-modal-iframe') !== null + ) { + opener = window.parent.frames.list_frame; + } else if ( typeof window.frames !== 'undefined' && typeof window.frames.frameElement !== 'undefined' && window.frames.frameElement !== null && window.frames.frameElement.classList.contains('t3js-modal-iframe') ) { - opener = window.frames.parent.frames.list_frame; - } - else if (window.opener) { - opener = window.opener + opener = window.frames.frameElement.contentWindow.parent; + } else if (window.opener) { + opener = window.opener; } return opener; - } + }; /** *