各位老大拜托了,这是全部源码(javascript in mozilla)。。。。

srole 2004-09-20 05:53:57
发了几次帖子,在网上刨(pao)了好久,没有找到合适的办法解决,下面的代码在ie中运行良好,在netscape/mozilla中无法显示菜单项,声明:var vSrc = e.target || e.srcElement; 后,window.alert()和document.write()也无法运行(mozilla中),不知道是什么原因。
文件menu.htm:

<script language="javascript">
document.writeln(" <DIV id=menuDiv style=\"Z-INDEX: 2; VISIBILITY: hidden; WIDTH: 50px; POSITION: absolute; HEIGHT: 1px; BACKGROUND-COLOR: #ffffff\"></DIV>");

//下拉菜单相关代码
var h;
var w;
var l;
var t;
var topMar = 1;
var leftMar = -2;
var space = 1;
var isvisible;
var MENU_SHADOW_COLOR='#ffffff';//定义下拉菜单阴影色
var global = window.document
global.fo_currentMenu = null
global.fo_shadows = new Array


function HideMenu()
{
var mX;
var mY;
var vDiv;
var mDiv;
if (isvisible == true)
{
vDiv = document.all("menuDiv");
mX = window.event.clientX + document.body.scrollLeft;
mY = window.event.clientY + document.body.scrollTop;
if ((mX < parseInt(vDiv.style.left)) || (mX > parseInt(vDiv.style.left)+vDiv.offsetWidth) || (mY < parseInt(vDiv.style.top)-h) || (mY > parseInt(vDiv.style.top)+vDiv.offsetHeight)){
vDiv.style.visibility = "hidden";
isvisible = false;
}
}
}

function ShowMenu(vMnuCode,tWidth) {
var e = window.event ;
var vSrc = e.target || e.srcElement;
// var vSrc=e.target?e.target:e.srcElement;

vMnuCode = "<table border=0 id='menu' cellspacing=1 cellpadding=3 style='width:"+tWidth+"' class=MenuDropDown onmouseout='HideMenu()'><tr height=23><td nowrap align=left class=MenuDropDown>" + vMnuCode + "</td></tr></table>";

h = vSrc.offsetHeight;
w = vSrc.offsetWidth;
l = vSrc.offsetLeft + leftMar+4;
t = vSrc.offsetTop + topMar + h + space-2;

vParent = vSrc.offsetParent;

while (vParent.tagName.toUpperCase() != "BODY")
{

l += vParent.offsetLeft;
t += vParent.offsetTop;
vParent = vParent.offsetParent;
}

menuDiv.innerHTML = vMnuCode;
menuDiv.style.top = t;
menuDiv.style.left = l;
menuDiv.style.visibility = "visible";
isvisible = true;

}




s4='<a href=#>open</a><br>';
s4+=' <a href=#> save</a> <br>';
s4+='<a href=#>close</a><br>';
s4+='<a href=#>close all</a><br>';
s4+='<a href=#>exit</a><br>';

</script>
<table>
<tr>
<td>
<a href="#"
onmouseover ="javascript:ShowMenu(s4,80)"
onmouseout="HideMenu()" > File
</a></td>
</tr></table>
...全文
156 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
srole 2004-09-20
  • 打赏
  • 举报
回复
有那位DX用上面的代码调试出来的阿,我在这里学习了。。。。。
mjpclab 2004-09-20
  • 打赏
  • 举报
回复
是这样啊
srole 2004-09-20
  • 打赏
  • 举报
回复
就是function(e){ var vSrc=e.target?e.target:e.srcElement;}样子吧
mjpclab 2004-09-20
  • 打赏
  • 举报
回复
是系统自动传递的
srole 2004-09-20
  • 打赏
  • 举报
回复
把event对象传给函数的方法我试验过,好像不行。。。。
mjpclab 2004-09-20
  • 打赏
  • 举报
回复
netscape/mozilla 中e是以参数形式传递给函数的,看看arguments[0]中有没有event对象(也可能是在auguments[2]中,不太清楚位置……)
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2004-09-20 05:53
社区公告
暂无公告