If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

The first problem is that the alert(v) in Child window returns a null. It seems like v is not delivered from parent window to the child window. Also, the parent window is reloaded when I click the button which triggers openNewWindow function in parent window.

Is here any way you could share more of your code related to this? Just based on what you've shared I can't seem to replicate your issue.

Since your snippets are out of context it's hard to know what order these things are called in and how everything executes as a whole but I am curious as to when the <input> element with the ID of test is created (in relation to everything else). Since the element is dynamically added to the page and you say the page gets refreshed, if the element is not added back to the page (or the page is reloaded too soon) the element will not exist when the child window tries to call it. Again I'm not sure if this is the case but it would certainly cause your issue.

This is just a quick look but I'm thinking it's because you don't add your newly created form to the document. Instead you try to place it inside of the .innerHTML property, which won't work from elements created with .createElement(). Try replacing

Thank you very much for the reply. It really helps.
I am sorry for some misleading of the code snippet because I want to demonstrate the problem in the simply way. In my real project, I use google map infowindow to connect map marker and popup form.

The google map infoWindow accepts string and DOM. It only has infoWindow.setcontent(html). It doesn't have API like infoWindow.append(html). I may need to look for postMessage for data passing between parent-child window, or google map customer layer for passing data. Please give some advices. Thanks in advance!

If you've ever used the developer console in a browser it can be vital in cases like this. Press F12 in your browser and for this I'd jump on to the 'console' tab.

The first thing I would check is if you can get the element directly in the parent window. So instead of checking:

Code:

var v = window.opener.document.getElementById("elem");

You can just type 'document.getElementById("elem");' in the console area while on the parent window to see if it returns a valid html element object. If so then the element you are trying to get definitely exist and the problem is elsewhere in passing the data.

If that didn't solve your problem you can try some more in-depth debugging. You could first go to the child window, open up your developer console and type 'window.opener;' This should return the parent window object (which you can expand to view all of the global variables and functions). On a similar note you could try going to the parent window and making a new variable, for example 'var $test = "Hello World!";' and then going to your child window console and trying to access 'window.opener.$test;' to see if there is a value. If so we're on the right track. You can even try sending commands like alert() to the parent window (or vice versa) to ensure the two windows are linked and can communicate data properly in this situation.

Lastly, try getElementById() on a different element. See if it's possible to get any element from the parent page (or vice versa). Since you are doing this through a framework/API it's hard for me to know exactly what the API allows and preserves. There are many APIs out there that reduce native functionality in light of securing their own API and code, as well as ensuring security, etc. etc.

Also, I tried postMessage to pass data between parent window to child window but it doesn't work. The code snippet are as following. In order to simplify the test, I don't use google map on these small programs.

When I click the Save button in the table of parent window, the child window is opened. But the data is not delivered. The alert("ok?") does not appear.So it looks like the message in parent window doesn't send to child window. I use the firefox. I will use debugger console you mentioned and try to find the bugs. Thanks again!