在主页上加上
document.body.onkeydown = function(){
parent.document.getElementById("菜单").style.display="none";
}
就可以了

解决方案 »

  1.   

    那个主页面是根据菜单按钮变化的啊,这样总不能没个页面都加吧?有没有办法从菜单所在页面给iframe重新注册一个点击事件?
      

  2.   

    那就这样
    iframe.document.onclick= function(){
        parent.document.getElementById("菜单").style.display="none";
    }
      

  3.   

    在jsp页面中就直接用
    iframe.document.onclick= function(){
        document.getElementById("菜单").style.display="none";
    }
    在主页中用
    document.onclick= function(){
        parent.document.getElementById("菜单").style.display="none";
    }
      

  4.   

    我是这样在jsp页面写的,iframe的ID是mainFrame。mainFrame.document.onclick=function(){
        alert('test');
    }但是这样写在点击主页面时没有反应,这个事件还必须在那个jsp页面中注册,因为主页面不是固定的,有无数的页面。
      

  5.   

    问题已解决,可能我那个jsp页面比较特殊,是在onload事件中加载的主页面,也就是在jsp页面加载完毕之后才加载的主页面。
    我是通过属性改变事件来注册点击事件的,这样只要在jsp页面写一下就可以了。
    document.onpropertychange = function() {
       mainFrame.document.onclick = function() {
          document.getElementById("new_menus").style.display = "none";
          document.getElementById("div_RightMenu").style.display = "none";
       }
    };