如实现环境如下:
------------------------------------------------------------------------------------------
main框架
<frameset rows="60,15,*" cols="*" frameborder="no" border="0" framespacing="0" id="main" >
     <frame src="topframe.html" name="top" scrolling="yes" noresize="noresize" id="top" />
     <frame src="midframe.html" name="mid" scrolling="no" noresize="noresize" id="mid" />
     <frame src="downframe.html" name="down" scrolling="yes" noresize="noresize" id="down" />
</frameset>
------------------------------------------------------------------------------------------top框架
<script language='javaScript' type='text/javaScript'>
\\读down框架操作
function temp1() {
        parent.frames['down'].document.form1.t2.value =parent.frames['down'].document.forms[0].t2.value+2;
return false;
}
\\监听down框架事件
var bObj=parent.frames['down'].document.getElementById("bu");
bObj.onclick= objclick;
function objclick(){alert(this.value)};</script>------------------------------------------------------------------------------------------
down框架
\\top框架读内容
<form id="form1" name="form1" method="post" action="">
  <input type="text" name="t1" value="1" />
  <input type="text" name="t2" value="1" />
</form>
\\top框架监听内容
<input type="button" value="我是 button" id="bu">
------------------------------------------------------------------------------------------现在问题是,我需要在top或main框架中读取和监听down框架,发现可以读取down的数据,但是无法监听down框架的事件。请问有没有办法实现?
实现时还有以下限制条件:
1、由于在down框架用来访问外部链接,好像无法加入自己的代码,所以这个实现方式可能不可行(但好像javascript只能监听当前页面的事件,不知道技术上(包括其他语言)能否实现?)
2、不知道能否有其他办法监听?如写一个代理服务器进行接收down框架中访问页面的操作(是否不能把每个动作都监听,只能监听提交给服务器的信息?)谢谢!

解决方案 »

  1.   

    看看我的这篇文章:
    http://blog.csdn.net/liuhongxing1908901/archive/2008/02/11/2088426.aspx
    bindAsEventListener方法专门解决这个问题。
      

  2.   

    源码在这篇文章中:
    http://blog.csdn.net/liuhongxing1908901/archive/2008/02/09/2087254.aspx
      

  3.   

    如果down框架用来访问外部链接,抱歉,没有任何办法可以解决,因为跨域存在安全问题,所以你想要监听跨域的内容是被浏览器禁止的。我几乎可以猜到你这样做的用途,你可能有自己的网站,想要投放一定的广告,但是你想监听广告被引导到那一步了。不过很可惜,我听说过很多想要这样做的人,无一例外都失败了