最近在做项目过程中,需要将js文字超出长度的内容用省略号代替,在鼠标悬停时能以悬浮框的形式显示出来。javascript代码如下:
<script >
function overShow (obj) {
var showDiv = document.getElementById('showDiv' );
showDiv.style.left = event.clientX+"px" ;
showDiv.style.top = event.clientY+"px" ;
showDiv.style.display = 'block' ;
showDiv.innerHTML = obj.innerHTML;
}
function outHide () {
var showDiv = document.getElementById('showDiv' );
showDiv.style.display = 'none' ;
showDiv.innerHTML = '' ;
}
</script >
上面这段代码在谷歌浏览器下正常工作,但是在Firefox下始终无法作用,老是报“event is not defined”的错误,多次尝试更改,均无法解决,上网搜索了一下,发现原因是因为在Firefox中使用了不同的事件对象模型,不同于IE Dom,用的是W3C Dom。Firefox DOM中并无event,故可以尝试用如下方法解决:
<script >
function overShow (obj,e) {
var showDiv = document.getElementById('showDiv' );
var theEvent = window.event|| e;
showDiv.style.left = theEvent.clientX+"px" ;
showDiv.style.top = theEvent.clientY+"px" ;
showDiv.style.display = 'block' ;
showDiv.innerHTML = obj.innerHTML;
}
function outHide () {
var showDiv = document.getElementById('showDiv' );
showDiv.style.display = 'none' ;
showDiv.innerHTML = '' ;
}
</script >
<div class ='content' onmouseover ="overShow(this,event)" onmouseout ="outHide()" >
js0 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
js0 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
js0 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
js0 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示
</div >
以上javascript代码兼容IE和FireFox。