@@ -12,8 +12,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
1212 if ( modal ) {
1313 modal . hide ( ) ;
1414 }
15- } ,
16- originalStyle : null
15+ }
1716 }
1817 Data . set ( id , modal )
1918
@@ -34,7 +33,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
3433 EventHandler . on ( window , 'popstate' , modal . pop )
3534
3635 modal . show = ( ) => {
37- modal . originalStyle ??= document . body . style ;
36+ backupBodyStyle ( modal ) ;
3837 const dialogs = el . querySelectorAll ( '.modal-dialog' )
3938 if ( dialogs . length === 1 ) {
4039 let backdrop = el . getAttribute ( 'data-bs-backdrop' ) !== 'static'
@@ -63,8 +62,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
6362 modal . hide = ( ) => {
6463 if ( el . children . length === 1 ) {
6564 modal . modal . hide ( ) ;
66- document . body . style = modal . originalStyle ;
67- modal . originalStyle = null ;
65+ restoreBodyStyle ( modal ) ;
6866 }
6967 else {
7068 modal . invoke . invokeMethodAsync ( modal . closeCallback )
@@ -148,11 +146,21 @@ export function dispose(id) {
148146 dialog . _hideModal ( ) ;
149147 }
150148
151- if ( modal . originalStyle ) {
152- document . body . style = modal . originalStyle ;
153- modal . originalStyle = null ;
154- }
149+ restoreBodyStyle ( modal ) ;
155150 dialog . dispose ( )
156151 }
157152 }
158153}
154+
155+ const backupBodyStyle = modal => {
156+ if ( modal . originalStyle === void 0 ) {
157+ modal . originalStyle = document . body . style . cssText ;
158+ }
159+ }
160+
161+ const restoreBodyStyle = modal => {
162+ if ( modal . originalStyle !== void 0 ) {
163+ document . body . style . cssText = modal . originalStyle ;
164+ delete modal . originalStyle ;
165+ }
166+ }
0 commit comments