Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
67
rated 0 times [  73] [ 6]  / answers: 1 / hits: 21928  / 15 Years ago, fri, january 22, 2010, 12:00:00

I'm developing a web application that opens a popup using windows.open(..). I need to call a function on the opened window using the handle returned by window.open, but I'm always getting the error message addWindow.getMaskElements is not a function, as if it couldn't access the function declared on child window. This is the behavior in both IE and FF. My code looks like this:



function AddEmail(target,category)
{
if(addWindow == null)
{
currentCategory = category;
var left = getDialogPos(400,220)[0];
var top = getDialogPos(400,220)[1];
addWindow = window.open(adicionar_email.htm,null,height=220px, width=400px, status=no, resizable=no);
addWindow.moveTo(left,top);
addWindow.getMaskElements ();
}
}


I've googled and read from different reliable sources and apparently this is supposed to work, however it doesn't.
One more thing, the functions in child window are declared in a separate .js file that is included in the adicionar_email.htm file. Does this make a difference? It shouldn't..
So, if anyone has ran into a similar problem, or has any idea of what I'm doing wrong, please, reply to this message.
Thanks in advance.



Kenia


More From » function

 Answers
8

The window creation is not a blocking operation; the script continues to execute while that window is opening and loading the HTML & javascript and parsing it.



If you were to add a link on your original page like this:



<a href=# onclick=addWindow.getMaskElements();>Test</a>


You'd see it works. (I tried it just to be sure.)



**EDIT **



Someone else posted a workaround by calling an onload in the target document, here's another approach:



function AddEmail()
{

if(addWindow == null) {
addWindow = window.open(test2.html,null,height=220px, width=400px, status=no, resizable=no);
}

if(!addWindow.myRemoteFunction) {
setTimeout(AddEmail,1000);
} else { addWindow.myRemoteFunction(); }
}


This keeps trying to call addWindow.myRemoteFunction every 1 second til it manages to sucessfully call it.


[#97773] Tuesday, January 19, 2010, 15 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
kaceyr

Total Points: 510
Total Questions: 97
Total Answers: 116

Location: Solomon Islands
Member since Fri, Oct 8, 2021
3 Years ago
kaceyr questions
;