通过javascript的学习,使我了解到了javascript分为ECMAscript,Bom和Dom。
open()函数并是Bom中的知识.
在a.html中:
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- <script type="text/javascript">
- var b = true;
- var bWin;
- function aFun() {
- //bWin
- if(b) {
- bWin = window.open("b.jsp","","width=460,heigth=300");
- b = false;
- }
- //1.调用 b页面中的 function()
- //bWin.bFun; 能不能?
- //2.获取 b页面中的DOM
- //var hNode = bWin.document.getElementById("hNode");
- //alert(hNode.nodeName);
- }
- function test() {
- alert("aaa");
- }
- </script>
- </head>
- <body onload="test()">
- <input id="aNode" type="button" value="获取b页面的属性" onclick="aFun();" />
- </body>
- </html>
复制代码
在b.html中:
- <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <title>无标题文档</title>
- <script type="text/javascript">
- var aWin;
- function bFun() {
- aWin = window.opener;
- //a.调用a页面中的function
- //aWin.test();
- //b.操作a页面中的dom
- var aEle = aWin.document.getElementById("aNode");
- alert(aEle.nodeName);
-
- }
- function test() {
- alert("aaaaaaaa");
- }
- </script>
- </head>
- <body onunload="window.opener.b = true">
- <h1 align="center" id="hNode">这个是b页面。。。。。。。。。。</h1>
- <input type="button" value="获取a页面的属性" onclick="bFun()" />
- </body>
- </html>
复制代码
这个例子很好的说明了如何在父页面获取子页面的window对象,子页面如何获取父页面的window,以及如何调用js,DOM的。
总结:
获取window对象后(以下简称window):
1.调用js函数对象:
window.fun();
2.调用js成员变量(必须全局):
window.property
3.调用页面中的dom:
window.document.getElementById("");
.....
*****************************************************************
以前前提不能在file协议中通过(chrom谷歌浏览器不能),否则会获取不到你想要的东西。
关于framset中的frame ,ifram,无非就是获取window对象的方式不同而已,top,self,parent.最后附一张关于这个知识点的图。
|
-
a.jpg
(79.39 KB, 下载次数: 11)
open
-
b.jpg
(93.4 KB, 下载次数: 10)
框架
|