File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -192,11 +192,16 @@ class Exp {
192192 } else if ( this . trigger . type === "onexit" ) {
193193 /* Renders banner if user wants to leave the page */
194194 const delay = this . trigger . delay || 0 ;
195- window . __exp_triggered = false ;
196- document . body . addEventListener ( "mouseleave" , function ( e ) {
197- /* Check window was left */
198- if ( e . offsetY - window . scrollY < 0 && ! window . __exp_triggered ) {
199- window . __exp_triggered = true ;
195+ // add unique global variable in case multiple onexit banner are in site
196+ window [ `__exp_triggered-${ this . bannerId } ` ] = false ;
197+ document . body . addEventListener ( "mouseout" , ( e ) => {
198+ e = e ? e : window . event ;
199+ const vpWidth = Math . max ( document . documentElement . clientWidth , window . innerWidth || 0 ) ;
200+ if ( e . clientX >= ( vpWidth ) ) return ;
201+ if ( e . clientY >= 50 ) return ;
202+ const from = e . relatedTarget || e . toElement ;
203+ if ( ! from && ! window [ `__exp_triggered-${ this . bannerId } ` ] ) {
204+ window [ `__exp_triggered-${ this . bannerId } ` ] = true ;
200205 setTimeout ( ( ) => {
201206 self . inject ( self ) ;
202207 } , delay ) ;
You can’t perform that action at this time.
0 commit comments