Problem: Need to get a handle of an already opened javascript popup window (handle = window.open(…)) from its opener window, multiple requests later after its opener (parent) window has been refreshed and javascript variables reset.
For example, parent window could have javascript as follows:
<script type="text/javascript">
      var popupHandle;
      function openPopUp() {
            popupHandle=window.open('http://www.google.ca', 'popupTest');
            popupHandle.focus();
            return popupHandle;
      }
      // To get handle, need to reopen popup with same name as original (popupTest).
      function getPopUpHandle() {
            return openPopUp();
      }
      // If getting handle to close, open as small as possible and close so it’s not too noticeable.
      function closePopUp() {
            popupHandle=window.open('', 'popupTest', 'directories=no,location=no,menubar=no,status=no,resizable=no,scrollbars=no,titlebar=no,top=1,left=1,width=1,height=1');
            popupHandle.close();
      }
</script>
If you know of a better solution, please let me know.
How I am using it in my app: I have a list of images displayed on one side of the screen. On the other side I have a form that allows me to submit information based on the image. When the form is submitted, it attaches the image referenced.
When an image is clicked on, it opens in a popup.
When the form is submitted, the next image in the list should open in the popup. The popup could have been closed by the user.
It's a bit of a kludge, but you could put a script in the opened window that attempts to call a function on its window.opener to inform the parent window of its existence.
So, the image-display window would have a function like
setInterval(function(){ 
   if(window.opener.registerChildWindow){ 
        window.opener.registerChildWindow(window);
   } 
 }), 100);
This would attempt call the registerChildWindow function on the parent window 10 times a second, as long as that function exists, no matter what page the parent window was on. I'm not entirely sure how to get a window handle out of an existing window (passing window was a guess), but that should at least be something to play around with.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With