I have a simple ajax application
From this, a popup is launched, with a form.
Both the form resultpage, and the ajax application hava a javascript file in common.
From the popup window, in the form resultpage, I am trying to call a method from the common javascript file, to apply to the parent window.
My javascript file contains an updateLayer method, which when caleld from the parent window, works fine. I get nothing when trying to call it from the popup window.
The resultpage in the popup window has
<script type="text/javascript" src="x.js">window.opener.updateLayer("Layer3", "380118179930"); </script>
before any html.
Nothing happens in the parentwindow. I have also tried window.parent.
What is the reason and solution for/to this?
I assume this is related to this question, asked by another user that also happens to be named Josh.
In my answer to that question, I tried to explain that the functions from a Javascript file included in your parent window would be attached to the window object, so you use window.opener to get access to that window object to call them.
It looks like you’ve almost got this solved, but the problem here is that by including
src="x.js"in the script tag from your form response, you’re effectively overwriting any code placed inside the script. Plus, since x.js is included in the parent window, there’s no need to have it in the popup at all, anyway.The code for your form response should look like this:
I’ve removed the
src="x.js"attribute, which would otherwise prevent code between the<script></script>tags from being executed.