<script>
document.onmousedown=if(event.srcElement.id!=dataLayer)dataLayer.style.display='none'
//加到文档最后
</script>

解决方案 »

  1.   

    楼上的热心人,我把你的code放到最后,还是不行,点击div,再点外面仍然不能是div隐藏
      

  2.   

    点击图片的时候里面table内容的时候,外面的div触发了onblur事件
    没有必要使用个条件判断,代码如下。
    另外建议楼主,可以使用POP窗口
    <!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=gb2312" />
    <title>无标题文档</title>
    <SCRIPT language=javascript>
    var dataLayer;// 定义操作层对象
    var lostLayerFocus = true;// 焦点是否在dataLayer层上. ture: 失去焦点; false:获得焦点
    var promptLayer;// 初始化
    function init(){
    dataLayer = document.getElementById("dataLayer");
    promptLayer = document.getElementById("prompt");
    dataLayer.innerHTML = "";
    dataLayer.innerHTML = "<table border=1 width=200 height=50 onfocus='showLayer()'><tr><td onfocus='showLayer()'>123</td></tr>";;
    }// 现实dataLayer层
    function showLayer(){
    dataLayer.style.display="block";
    dataLayer.focus();
    }
    // 隐藏层
    function hiddenLayer(){
    //alert(0);
    promptLayer.innerText="失去焦点:"+ lostLayerFocus;
    if(lostLayerFocus==true){ 
    dataLayer.style.display="none";
    }
    }
    </SCRIPT>
    </head><body onload="init()">
    <div name="dataLayer" id="dataLayer" style="display:none;LEFT: 69px; POSITION: absolute; TOP: 159px;Z-INDEX:99" 
    onBlur="hiddenLayer()" ></div>
    <input type="button" name ="popLayer" value=show onclick="showLayer()" /> <div id=prompt></div>
    </body>
    </html>