Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

refresh child window from parent window

Tags:

javascript

Using JavaScript

i have the refresh button in my parent window,

when i click refresh button ,

i want to refresh my child window ,

window.location.href='add_billing_order_frm.php?session_re_genrate=new

This snippet redirecting the page instead refresh ,

I thing there is a snippet like

opener.document.location.reload(true);

but this one for parent window refresh, but i want for child window wiht URL location option

function show_billing_order_form(url){
   var childWindow = window.open(url);
}

function refresh_my_child_window(){
   return childWindow.location.reload('add_billing_order_frm.php');
}

To open a popup window(child window) , i used this show_billing_order_form call back ,

To refresh the child window , i add one refresh icon in my parent window , To refresh the child window , in that refresh icon onclick i called refresh_my_child_window ,

but function refreshing my child window..

like image 467
Bharanikumar Avatar asked Oct 30 '10 14:10

Bharanikumar


People also ask

How do you refresh a child's window?

In the HTML markup of the Child page we need to place the JavaScript function RefreshParent which is called attached to the browser onbeforeunload event. Thus when the Child page popup window is closed the parent page is refreshed.

How do I close the child window from the parent window?

A child window opens as separate window as a tab. Go back to the parent and click “Close child” and the child window closes.

What is parent window and child window?

For example, if the application starts off by creating two floating windows in a row, the parent of the first window will be the main application window, while the parent of the second window will be the first window. The converse of a parent window is a child window.


1 Answers

When opening your child window from the parent, remember the return value in a variable somewhere:

var childWindow = window.open(/* ... */);

...and when you want to refresh the child:

childWindow.location.reload();

Note that some browsers will prevent access to childWindow.location.reload if the parent and child aren't loaded from the same origin.

Here's a quick-and-dirty example (live copy — note: the live copy only works in non-edit mode, like the link given, because otherwise JSBin uses null.jsbin.com instead of output.jsbin.com and so the origin doesn't match):

HTML:

<input type='button' id='btnOpen' value='Open Child'>
<input type='button' id='btnClose' value='Close Child'>
<input type='button' id='btnRefresh' value='Refresh Child'>

JavaScript:

(function() {
    var childWindow;

    document.getElementById('btnOpen').onclick = openChildWindow;
    document.getElementById('btnClose').onclick = closeChildWindow;
    document.getElementById('btnRefresh').onclick = refreshChildWindow;

    function openChildWindow() {
        if (childWindow) {
            alert("We already have one open.");
        } else {
            childWindow = window.open(location.protocol + "//" + location.host + "/cotokijigu/1");
        }
    }

    function closeChildWindow() {
        if (!childWindow) {
            alert("There is no child window open.");
        }
        else {
            childWindow.close();
            childWindow = undefined;
        }
    }

    function refreshChildWindow() {
        if (!childWindow) {
            alert("There is no child window open.");
        } else {
            childWindow.location.reload();
        }
    }
})();

Caveat: I would never recommend hooking up event handlers with onclick properties as above. Instead, I'd use addEventListener (on standards-based browsers) or attachEvent (on IE), by using a library or a utility function like this one. Used the properties above to avoid obscuring the main point.

like image 125
T.J. Crowder Avatar answered Oct 29 '22 05:10

T.J. Crowder