@@ -34,7 +34,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
3434 EventHandler . on ( window , 'popstate' , modal . pop )
3535
3636 modal . show = ( ) => {
37- modal . originalStyle ??= document . body . style ;
37+ backupBodyStyle ( modal ) ;
3838 const dialogs = el . querySelectorAll ( '.modal-dialog' )
3939 if ( dialogs . length === 1 ) {
4040 let backdrop = el . getAttribute ( 'data-bs-backdrop' ) !== 'static'
@@ -63,8 +63,7 @@ export function init(id, invoke, shownCallback, closeCallback) {
6363 modal . hide = ( ) => {
6464 if ( el . children . length === 1 ) {
6565 modal . modal . hide ( ) ;
66- document . body . style = modal . originalStyle ;
67- modal . originalStyle = null ;
66+ restoreBodyStyle ( modal ) ;
6867 }
6968 else {
7069 modal . invoke . invokeMethodAsync ( modal . closeCallback )
@@ -148,11 +147,21 @@ export function dispose(id) {
148147 dialog . _hideModal ( ) ;
149148 }
150149
151- if ( modal . originalStyle ) {
152- document . body . style = modal . originalStyle ;
153- modal . originalStyle = null ;
154- }
150+ restoreBodyStyle ( modal ) ;
155151 dialog . dispose ( )
156152 }
157153 }
158154}
155+
156+ const backupBodyStyle = modal => {
157+ if ( modal . originalStyle === void 0 ) {
158+ modal . originalStyle = document . body . style . cssText ;
159+ }
160+ }
161+
162+ const restoreBodyStyle = modal => {
163+ if ( modal . originalStyle !== void 0 ) {
164+ document . body . style . cssText = modal . originalStyle ;
165+ delete modal . originalStyle ;
166+ }
167+ }
0 commit comments