• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 202
  • Last Modified:

Opening a window with dependent=1 doesn't work

Hi all...

According to a Javascript manual I have, I can use the command dependent=1 when calling the window.open( ) method to cause the new window to be a child of the window who called that method... the problem is that I want to modify a value of an object of the parent window, but that object isn't found.  Another fact.. if a window is opened with dependent=1 it should close when the parent close, but it doesn't work either..

Any help will be greatly appreciated
Demarcy
0
demarcy
Asked:
demarcy
  • 2
1 Solution
 
CJ_SCommented:
dammit, I lost everything I wrote here. Here goes again

dependent is not a valid variable in the window.open function. To achieve what you want however, you need to do something like:

to open:
mychildwindow = window.open(...)

to close:
mychildwindow.close();

to pass values to the parent:
window.opener.etcetc
(with etcetc being the object you want to refer to)

this isn't as long as i wrote it before, but hope it helps,
regards,CJ
0
 
lilian_kellyCommented:
dependent will only work in  Navigator 4 and it should be set to yes or no. Its yes by default.


Here is some code that will open a child window. The child window will change the value of the text box in the parent and then if you click the close button on the parent then the child window will close. It works for both IE and Netscape.

When you say object do you mean a java script object? I will try this out next. But in the mean time this may help.

parent.htm
______________________________________

<HTML>
<HEAD>

</HEAD>

<BODY>
This is the parent....
<form name="myForm">
      <input type="text" name="myText" value = "this is text from the parent">
      <input type="button" name="closechild" value = "closechild" onclick="childWindow.close();">
</form>
<script>
alert("about to open a child window and let it set the value of the text box..");
childWindow = window.open("child.htm");
</script>
</BODY>
</HTML>

______________________________________
child.htm
_______________________________________


<HTML>
<HEAD>

</HEAD>

<BODY>
This is the child window
<script>
window.opener.document.myForm.myText.value = "Child has set this value";
</script>
</BODY>
</HTML>


0
 
lilian_kellyCommented:
If you have a java script object MyObject you can call a fn or change a variable in the object of the opener from the child window by calling

window.opener.myObj.name = "Child name";

Here's all the code

Parent.htm
_____________

<HTML>
<HEAD>
<script>
function myObject(name){
      this.name = name;
}
</script>


</HEAD>
<BODY>
This is the parent....
After the child is opened then click the button to see the value of the variable in the object
<form name="myForm">
      <input type="text" name="myText" value = "this is text from the parent">
      <input type="button" name="blag" value = "get value" onclick="document.myForm.myText.value=myObj.name;">
</form>
<script>

myObj = new myObject("parentname");
document.myForm.myText.value = myObj.name;
childWindow = window.open("child.htm");

</script>
</BODY>
</HTML>

Child.htm
___________


<HTML>
<HEAD>

</HEAD>

<BODY>
This is the child window
<script>
window.opener.myObj.name = "Child name";
</script>
</BODY>
</HTML>
0

Featured Post

Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now