<!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">
<script language="javascript">
function display_on(evt,hint){
var _event = evt ? evt : event;
var _target = evt ? evt.target : event.srcElement;
var _p=document.getElementById(hint);
_p.style.top = _event.clientY + document.body.scrollTop ;
_p.style.left = ( _event.clientX + document.body.scrollLeft < 160 ? _event.clientX + document.body.scrollLeft + 0 : _event.clientX + document.body.scrollLeft - -10 );
Show( hint , true ); 
_p.focus();
}
function Show(obj, bShow) {
obj = (typeof(obj) == "string" ? document.getElementById(obj) : obj);
if (obj) obj.style.display= (bShow ? "" : "none");
}
function display_off( evt ){
Show( evt ,false); 
}
</script>
<div onMouseOver="display_on(event,'hints')" onMouseOut="display_off('hints')" style="background-color:#cccccc">显示</div>
<div id="hints" style="position:absolute;z-index:999;background-color:#aa1234;display:none">提示信息</div>此代码在添加了W3C标准后FF无法实现效果 IE无问题!
没有添加前IE与FF都可以实现效果.请高手帮忙解决!

解决方案 »

  1.   

    document.body.scrollTop
    这个值不一样造成的吧
      

  2.   

    document.body.scrollTop

    document.documentElement.scrollTop
      

  3.   

    FF下 位置必须要单位
    _p.style.top = _event.clientY + document.body.scrollTop +"px";
    _p.style.left  = ****************** + "px";
    另外
    DTD和非DTD模式document.body和document.documentElement有区别的
    建议var $d = document.compatMode == "BackCompat" ? d = document.body : d = document.documentElement;
    然后将你的document.body全都替换成d