My main goal is:
Going to my application, open a link there in a new tab, make something in the new tab and send an event to the parent-main tab to refresh.
I have learned 2 techniques that doesn’t do exactly what I need:
- postMessage – works as far as I know only on iframe and not on tabs
- window.opener – works only with window.open(url) that opens only new window and not new tab.
How can I pass an event from the child to the parent using tabs? I’d be happy for a specific example for javascript code in the parent and the child. It should work for cross-domain (for example: http://www.mydomain.com and bills.mydomain.com).
Is there a a jQuery solution I am missing?
The following works for me in chrome, firefox, ie(didn’t test more browsers)
assume 3 documents
at first set the domain-property of all 3 documents to mydomain.com
in parent.html create a hidden iframe with a name-property of e.g. “hiddenframe”. Also create some function that may later receive a response.
parent.html should now look like this:
In child.html you’ll now be able to load a document into the hidden iframe inside parent.html
(don’t be confused in face of the use of
window.open()here, there will not open a new window, the page will be loaded into the iframe in parent.html)In dispatcher.html you now may call the function inside parent.html
When you only need to reload the parent.html it’s a little bit easier.
Again set the document.domain-property in parent.html and child.html(you don’t need the iframe in parent.html and the dispatcher.html)
In parent.html also set the name-property of the window, e.g.
In child.html you now may access the
parentTab-window(tab)…or simply use “parentTarget” as target-property of a link or form in child.html