【发布时间】:2011-02-09 07:14:15
【问题描述】:
我们在 aspx 和 javascript 函数中使用 div 标签来在我们的 Web 应用程序中显示上下文菜单。在 IE6 中,上下文菜单中的子菜单显示在正确的 x 和 y 坐标上,这些坐标是我们在应用程序中硬编码的。但在 IE7 和 IE8 中,子菜单会重叠,并且在某些机器中,菜单会位于窗口后面。谁能告诉我有什么问题或显示conext菜单和子菜单的任何其他替代方法?
<HTML>
<HEAD>
<TITLE>Nested popup windows</TITLE>
<script>
var firstPopupDiv = null;
var popup = null;
var vpopup = null;
function tag_onclick()
{
var popup = window.createPopup();
var div = popup.document.createElement("DIV");
div.style.backgroundColor = "green";
div.style.width = 200;
div.style.height = 200;
div.onclick = div_onclick;
popup.document.body.appendChild(div);
firstPopupDiv = div;
vpopup = popup.document.parentWindow;
popup.show(30, 30, 200, 200, maindiv);
}
function div_onclick()
{
var fpopup = vpopup.createPopup();
fpopup.document.body.innerHTML = "<div id=\"MarkupSubMenu\" style=\"position:relative\"> Markups</div>";
fpopup.document.body.style.backgroundColor = "red";
fpopup.show(230, 30, 200, 200, firstPopupDiv); // Not shown at 230!
}
</script>
</HEAD>
<BODY>
<div id="maindiv" onclick="tag_onclick()">Click me</div>
</BODY>
</HTML>
【问题讨论】:
-
有很多事情可能会出错。您应该提供代码示例。需要注意的一件事是,您可能在 IE6 中使用的任何 CSS hack 在 IE7 中都会被破坏,并且会导致不可预测的布局行为。还有一个问题是您使用的是什么 DOCTYPE,等等。具体一点并提供完整的详细信息,您可能会得到一些帮助。
标签: asp.net javascript