2008年1月25日星期五

跨站点的网页子窗口和网页父窗口的不能直接交互

网页子窗口和网页父窗口的交互包括四种情况:
1、应用实例内的网页子窗口和网页父窗口的交互
2、同站点不同端口的网页子窗口和网页父窗口的交互
3、不同站点的网页子窗口和网页父窗口的交互

编写父窗口test1.html,JAVASCRIPT代码如下:

html

head

script language="JavaScript"
function getname(str) {
alert("哈罗! "+ str+"!");
}
/script

/head

body

a href="test2.html" onmouseover="window.status='Just another stupid link...'; return true"test url
/a

Please enter your name:

form
input type="text" name="name" onblur="getname(this.value)" value=""
/form

form name="form1"
input name="txt"
input type="button" onclick="window.open('http://192.168.1.2:7001/test/test2.html')" value="opennewwindow"
/form

/body

/html

编写子窗口test2.html,JAVASCRIPT代码如下:

html
head

script language="JavaScript"
function pushbutton() {
alert("嗨! 你好");
}
/script
/head

body

form
input type="button" name="Button1" value="Push me" onclick="pushbutton()"
/form

form name="form2"
input name="txt2"
input type="button" onclick="opener.document.form1.txt.value=txt2.value" value="passtoparent"
/form

/body

/html

准备两个WEB SERVER,都使用TOMCAT4.1,第一个地址为http://192.168.1.1:8080/test/,第二个地址为http://192.168.1.2:7001/test/,另外在第二个服务器准备第二端口,地址为http://192.168.1.2:8080/test/,如下是实验操作和结果:

1、把test1.html和test2.html都放到//192.168.1.1:8080/test/,并test1.html文件中的“http://192.168.1.2:7001”修改为“//192.168.1.1:8080/test/”,实验结果是子窗口能返回结果到父窗口;

2、把test1.html都放到//192.168.1.2:8080/test/,把test2.html都放到//192.168.1.2:7001/test/,实验结果是子窗口能返回结果到父窗口;

3、把test1.html都放到http://192.168.1.1:8080/test/,把test2.html都放到//192.168.1.2:7001/test/,实验结果是子窗口不能返回结果到父窗口.

没有评论: