diff --git a/webv4/pages/000-home.xjs b/webv4/pages/000-home.xjs
index 32b5353df82af16356ee2a36e23572ad651df34b..53b5280a04a8689c95a03eb1d49c4fff1d80604e 100644
--- a/webv4/pages/000-home.xjs
+++ b/webv4/pages/000-home.xjs
@@ -20,30 +20,32 @@
 
     	<script id="fTelnetScript" src="<?xjs write(get_url()); ?>"></script>
     	<script>
-            var wsp = <?xjs write(settings.wsp || GetWebSocketServicePort()); ?>;
-            var wssp = <?xjs write(settings.wssp || GetWebSocketServicePort(true)); ?>;
-    		var Options = new fTelnetOptions();
-    		Options.BareLFtoCRLF = false;
-            Options.BitsPerSecond = 57600;
-            Options.ButtonBarVisible = true;
-    		Options.ConnectionType = 'telnet';
-    		Options.Emulation = 'ansi-bbs';
-    		Options.Enter = '\r';
-    		Options.Font = 'CP437';
-    		Options.ForceWss = false;
-    		Options.Hostname = '<?xjs write(http_request.vhost); ?>';
-    		Options.LocalEcho = false;
-    		Options.Port = location.protocol == 'https:' ? wssp : wsp;
-    		Options.ScreenColumns = 80;
-    		Options.ScreenRows = 25;
-            Options.SplashScreen = '<?xjs write(get_splash()); ?>';
-            var fTelnet = new fTelnetClient('fTelnetContainer', Options);
-            fTelnet.ButtonBarVisible = true;
-            if ($('#ftelnet-connect').length) {
-                $('#ftelnet-connect').click(function() {
-                    fTelnet.Connect();
-                });
-            }
+    		window.addEventListener('load', (event) => {
+				var wsp = <?xjs write(settings.wsp || GetWebSocketServicePort()); ?>;
+				var wssp = <?xjs write(settings.wssp || GetWebSocketServicePort(true)); ?>;
+				var Options = new fTelnetOptions();
+				Options.BareLFtoCRLF = false;
+				Options.BitsPerSecond = 57600;
+				Options.ButtonBarVisible = true;
+				Options.ConnectionType = 'telnet';
+				Options.Emulation = 'ansi-bbs';
+				Options.Enter = '\r';
+				Options.Font = 'CP437';
+				Options.ForceWss = false;
+				Options.Hostname = '<?xjs write(http_request.vhost); ?>';
+				Options.LocalEcho = false;
+				Options.Port = location.protocol == 'https:' ? wssp : wsp;
+				Options.ScreenColumns = 80;
+				Options.ScreenRows = 25;
+				Options.SplashScreen = '<?xjs write(get_splash()); ?>';
+				var fTelnet = new fTelnetClient('fTelnetContainer', Options);
+				fTelnet.ButtonBarVisible = true;
+				if ($('#ftelnet-connect').length) {
+					$('#ftelnet-connect').click(function() {
+						fTelnet.Connect();
+					});
+				}
+			});
     	</script>
 
 <?xjs } ?>
diff --git a/webv4/pages/003-games.xjs b/webv4/pages/003-games.xjs
index 7b7604d8bb2b03cb992b44b613676ba42b0569e2..3ba487f99560197a0f5aad309692f2d59da57f57 100644
--- a/webv4/pages/003-games.xjs
+++ b/webv4/pages/003-games.xjs
@@ -43,29 +43,31 @@
 
 <script id="fTelnetScript" src="<?xjs write(get_url()); ?>"></script>
 <script type="text/javascript">
-    var wsp = <?xjs write(settings.wsp || GetWebSocketServicePort()); ?>;
-    var wssp = <?xjs write(settings.wssp || GetWebSocketServicePort(true)); ?>;
-    var Options = new fTelnetOptions();
-    Options.BareLFtoCRLF = false;
-    Options.BitsPerSecond = 57600;
-    Options.ConnectionType = 'rlogin';
-    Options.Emulation = 'ansi-bbs';
-    Options.Enter = '\r';
-    Options.Font = 'CP437';
-    Options.ForceWss = false;
-    Options.Hostname = '<?xjs write(http_request.vhost); ?>';
-    Options.LocalEcho = false;
-    Options.Port = location.protocol == 'https:' ? wssp : wsp;
-    Options.RLoginClientUsername = '<?xjs write(user.security.password); ?>';
-    Options.RLoginServerUsername = '<?xjs write(user.alias); ?>';
-    Options.ScreenColumns = 80;
-    Options.ScreenRows = 25;
-    Options.SplashScreen = Options.SplashScreen = '<?xjs write(get_splash()); ?>';
-    Options.WebSocketUrlPath = '?Port=<?xjs write(GetRLoginPort()); ?>';
-    var fTelnet = new fTelnetClient('fTelnetContainer', Options);
-    fTelnet.OnConnectionClose = function () {
-        window.location.reload();
-    };
+	window.addEventListener('load', (event) => {
+		var wsp = <?xjs write(settings.wsp || GetWebSocketServicePort()); ?>;
+		var wssp = <?xjs write(settings.wssp || GetWebSocketServicePort(true)); ?>;
+		var Options = new fTelnetOptions();
+		Options.BareLFtoCRLF = false;
+		Options.BitsPerSecond = 57600;
+		Options.ConnectionType = 'rlogin';
+		Options.Emulation = 'ansi-bbs';
+		Options.Enter = '\r';
+		Options.Font = 'CP437';
+		Options.ForceWss = false;
+		Options.Hostname = '<?xjs write(http_request.vhost); ?>';
+		Options.LocalEcho = false;
+		Options.Port = location.protocol == 'https:' ? wssp : wsp;
+		Options.RLoginClientUsername = '<?xjs write(user.security.password); ?>';
+		Options.RLoginServerUsername = '<?xjs write(user.alias); ?>';
+		Options.ScreenColumns = 80;
+		Options.ScreenRows = 25;
+		Options.SplashScreen = Options.SplashScreen = '<?xjs write(get_splash()); ?>';
+		Options.WebSocketUrlPath = '?Port=<?xjs write(GetRLoginPort()); ?>';
+		var fTelnet = new fTelnetClient('fTelnetContainer', Options);
+		fTelnet.OnConnectionClose = function () {
+			window.location.reload();
+		};
+	});
 
     async function launchXtrn(code) {
         await v4_get('./api/system.ssjs?call=set-xtrn-intent&code=' + code);
diff --git a/webv4/pages/099-xtrnmenu-games.xjs b/webv4/pages/099-xtrnmenu-games.xjs
index c7106969f157d3872695bbe5d7e9b140abcde545..722bf2a658e7eab4fcd8119cd56f3c671822b0d7 100644
--- a/webv4/pages/099-xtrnmenu-games.xjs
+++ b/webv4/pages/099-xtrnmenu-games.xjs
@@ -69,29 +69,31 @@
 
 <script id="fTelnetScript" src="<?xjs write(get_url()); ?>"></script>
 <script type="text/javascript">
-    var wsp = <?xjs write(settings.wsp || GetWebSocketServicePort()); ?>;
-    var wssp = <?xjs write(settings.wssp || GetWebSocketServicePort(true)); ?>;
-    var Options = new fTelnetOptions();
-    Options.BareLFtoCRLF = false;
-    Options.BitsPerSecond = 57600;
-    Options.ConnectionType = 'rlogin';
-    Options.Emulation = 'ansi-bbs';
-    Options.Enter = '\r';
-    Options.Font = 'CP437';
-    Options.ForceWss = false;
-    Options.Hostname = '<?xjs write(http_request.vhost); ?>';
-    Options.LocalEcho = false;
-    Options.Port = location.protocol == 'https:' ? wssp : wsp;
-    Options.RLoginClientUsername = '<?xjs write(user.security.password); ?>';
-    Options.RLoginServerUsername = '<?xjs write(user.alias); ?>';
-    Options.ScreenColumns = 80;
-    Options.ScreenRows = 25;
-    Options.SplashScreen = Options.SplashScreen = '<?xjs write(get_splash()); ?>';
-    Options.WebSocketUrlPath = '?Port=<?xjs write(GetRLoginPort()); ?>';
-    var fTelnet = new fTelnetClient('fTelnetContainer', Options);
-    fTelnet.OnConnectionClose = function () {
-        window.location.reload();
-    };
+	window.addEventListener('load', (event) => {
+		var wsp = <?xjs write(settings.wsp || GetWebSocketServicePort()); ?>;
+		var wssp = <?xjs write(settings.wssp || GetWebSocketServicePort(true)); ?>;
+		var Options = new fTelnetOptions();
+		Options.BareLFtoCRLF = false;
+		Options.BitsPerSecond = 57600;
+		Options.ConnectionType = 'rlogin';
+		Options.Emulation = 'ansi-bbs';
+		Options.Enter = '\r';
+		Options.Font = 'CP437';
+		Options.ForceWss = false;
+		Options.Hostname = '<?xjs write(http_request.vhost); ?>';
+		Options.LocalEcho = false;
+		Options.Port = location.protocol == 'https:' ? wssp : wsp;
+		Options.RLoginClientUsername = '<?xjs write(user.security.password); ?>';
+		Options.RLoginServerUsername = '<?xjs write(user.alias); ?>';
+		Options.ScreenColumns = 80;
+		Options.ScreenRows = 25;
+		Options.SplashScreen = Options.SplashScreen = '<?xjs write(get_splash()); ?>';
+		Options.WebSocketUrlPath = '?Port=<?xjs write(GetRLoginPort()); ?>';
+		var fTelnet = new fTelnetClient('fTelnetContainer', Options);
+		fTelnet.OnConnectionClose = function () {
+			window.location.reload();
+		};
+	});
 
     async function launchXtrn() {
         var code = event.srcElement.id;