@@ -962,15 +962,17 @@ function($, _, Backbone, gettext, BasePage,
962
962
} catch ( e ) {
963
963
console . error ( e ) ;
964
964
}
965
- return window . addEventListener (
966
- 'message' ,
967
- ( event ) => {
968
- if ( event . data && event . data . type === 'completeXBlockDuplicating' ) {
969
- return self . onNewXBlock ( placeholderElement , null , true , event . data . payload ) ;
970
- }
971
- } ,
972
- { once : true }
973
- ) ;
965
+
966
+ const messageHandler = ( { data } ) => {
967
+ if ( data && data . type === 'completeXBlockDuplicating' ) {
968
+ self . onNewXBlock ( placeholderElement , null , true , data . payload ) ;
969
+ window . removeEventListener ( 'message' , messageHandler ) ;
970
+ }
971
+ } ;
972
+
973
+ window . addEventListener ( 'message' , messageHandler ) ;
974
+
975
+ return ;
974
976
}
975
977
976
978
XBlockUtils . duplicateXBlock ( xblockElement , parentElement )
@@ -989,18 +991,19 @@ function($, _, Backbone, gettext, BasePage,
989
991
id : xblockElement . data ( 'locator' )
990
992
} ) ;
991
993
992
- if ( this . options . isIframeEmbed ) {
993
- return window . addEventListener (
994
- 'message' ,
995
- ( { data } ) => {
996
- if ( data && data . type === 'completeXBlockDeleting' ) {
997
- const targetXBlockElement = $ ( `[data-locator="${ data . payload . locator } "]` ) ;
998
- return self . onDelete ( targetXBlockElement ) ;
999
- }
1000
- } ,
1001
- { once : true }
1002
- ) ;
1003
- }
994
+ if ( this . options . isIframeEmbed ) {
995
+ const messageHandler = ( { data } ) => {
996
+ if ( data && data . type === 'completeXBlockDeleting' ) {
997
+ const targetXBlockElement = $ ( `[data-locator="${ data . payload . locator } "]` ) ;
998
+ window . removeEventListener ( 'message' , messageHandler ) ;
999
+ return self . onDelete ( targetXBlockElement ) ;
1000
+ }
1001
+ } ;
1002
+
1003
+ window . addEventListener ( 'message' , messageHandler ) ;
1004
+
1005
+ return ;
1006
+ }
1004
1007
1005
1008
XBlockUtils . deleteXBlock ( xblockInfo ) . done ( function ( ) {
1006
1009
self . onDelete ( xblockElement ) ;
0 commit comments