共享网

通过js从父页面获取子页面的值
2010-9-3 13:13:34 文章来源: http://www.chr114.com 文章作者: chr114 点击率:
核心提示: 通常在很多情况下都会遇到通过js来传值的问题,只要通过一些页面关联,他们的值就可以互相传递 其中应用框架的时候传值问题可能会遇到更多一些   1、从父页面传值到子页面可能很容易办到,在很多情况下可以不通过js来传就可以达到目的,但从子页面把数据传给父页面就不是那么容易了,其实思路很简单,首先你要通过父页面找到子页面,按照W3C标准来,语法如下: document.getElementById(”iframe1″).contentWindow; 取到子页面对象   2、此文为了达到一个很醒目的效果,做了一个很即时的例子,当鼠标选中子页面的任何文字的时候,父页面的text里面就把

通常在很多情况下都会遇到通过js来传值的问题,只要通过一些页面关联,他们的值就可以互相传递
其中应用框架的时候传值问题可能会遇到更多一些

  1、从父页面传值到子页面可能很容易办到,在很多情况下可以不通过js来传就可以达到目的,但从子页面把数据传给父页面就不是那么容易了,其实思路很简单,首先你要通过父页面找到子页面,按照W3C标准来,语法如下:
document.getElementById(”iframe1″).contentWindow;
取到子页面对象

  2、此文为了达到一个很醒目的效果,做了一个很即时的例子,当鼠标选中子页面的任何文字的时候,父页面的text里面就把显示出来,通过getSelection和selection.createRange方法来实现,关于selection.createRange是只能在ie6上面能用,所以要加。

  3、注:此实例牵涉到一个安全机制问题,以前很多浏览器都没考虑到过的,所以这个实例在一部分浏览器里面调试不起作用,但不用担心,你把代码放到自己的机子上试试,是得行的,也就是说这个跨服务器去执行这样的操作就会出问题。[与父子页面传值的问题,此博里面还有两篇文章,关注此问题的朋友可以去关注一下]

具体代码如下:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title> 
</head> 
<body>
<input type="text" id="text1">
<iframe src="http://www.uideas.cn/download/demo1.html" id="iframe1" name="iframe1" style="width:60%; height:60%;"></iframe>
</body> 
</html>
<script language="JavaScript">
 var childHtml = document.getElementById("iframe1").contentWindow;
 var parentText = document.getElementById("text1");
 var getValue = "";
 if(childHtml.document.selection){  
 childHtml.document.onmouseup=function(){   
 parentText.value = childHtml.document.selection.createRange().text;   
 }  
 }else{   
 childHtml.onmouseup=function(){  
  parentText.value=childHtml.window.getSelection();   }
   }
 </script>

欢迎访问编程之路,请在评论时遵守国家相关法律法规。评论不代表本站观点

  • 访客名称:

2010 编程之路 www.chr114.com All Rights Reserved