I have the following javascript that opens a child window with dimensions and aligns it to the center of the screen.
function PopupCenter(url, title, w, h) { // Fixes dual-screen position Most browsers Firefox var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : screen.left; var dualScreenTop = window.screenTop != undefined ? window.screenTop : screen.top; var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width; var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height; var left = ((width / 2) - (w / 2)) + dualScreenLeft; var top = ((height / 2) - (h / 2)) + dualScreenTop; var newWindow = window.open(url, title, 'scrollbars=yes, width=' + w + ', height=' + h + ', top=' + top + ', left=' + left); // Puts focus on the newWindow if (window.focus) { newWindow.focus(); } var timer = setInterval(checkChild, 500); function checkChild() { if (newWindow.closed) { var message = 'You have aborted the transaction by closing the window !'; var status = 'closed'; paymentResponseDisplay(message,status) clearInterval(timer); } } window.onbeforeunload = function() { if(!newWindow.closed){ return "Do you really want to abort this transaction?"; } } }
But in safari I get
TypeError: undefined is not an object (evaluating 'newWindow.focus')
I can not find a fix for this. Can anyone help?
source share