Javascript父窗口和子窗口函数

时间:2011-01-05 19:21:33

标签: javascript

function myFunction(){

myWin = open("","","width=200,height=200");

with(myWin.document){
  open();
  write("<HTML><HEAD><TITLE>Child Window</TITLE>");
  write("<SCRIPT>function myTest(){");
  write("alert('This function is defined in the child window ");
  write("and is called from the parent window.'); this.focus();}");
  write("</SCRIPT></HEAD><BODY><H3>Child Window</H3><HR>");
  write("<FORM><INPUT TYPE='button' VALUE='parent window function' ");

        write("onClick='opener.winFunction();'>");                                            
   write("<P><INPUT TYPE='button' VALUE='close window' ");
   write("onClick='window.close();'>");
   write("</FORM></BODY></HTML>");
   close();
 }
}

function winFunction(){
    alert("This function is defined in the parent window\n" +
          "and is called from the child window.");
    myWin.focus();
}

// - &GT;

为了进一步解释我的初始查询是什么,上面的代码,应该用第二个按钮打开子窗口(myWin),“打开子窗口”按钮,而不需要用第一个按钮打开窗口或做任何事情其他。它应该简单地调用myWin.myTest()函数当按下第二个按钮时,子窗口将打开,但是在它工作之前需要先打开子窗口(第一个按钮)。这不是预期的目的,“打开子窗口”按钮应该可以工作,而不需要做任何其他事情。由于某种原因,父窗口没有与myWin窗口和myTest函数通信。这不是家庭作业,它是认证课程实验室的一部分,并按照我所表明的理解方式进行编码。 DTD不包括在内,因为重点是JavaScript。我正确地编写了关于该W3C和其他W3C要求的代码。

2 个答案:

答案 0 :(得分:3)

我重新编写了更好的代码。它按预期工作。除了直接引用正确的窗口对象外,它没有太大的不同。

代码看起来仍然很难看,用url创建新窗口而不是像这样。

http://jsfiddle.net/B8rDN/24/

答案 1 :(得分:0)

正常工作(虽然我转义了字符串中结束标记的/并制作了\/

演示:http://www.jsfiddle.net/4FBZv/