能够盖住 iframe 的方案有三个:
1. OBJECT type="text/x-scriptlet"
dhtml scriptlet已经过期
不太好控制, 可写的数据量太小,火狐浏览器不兼容
<div style="width:50px;color:white;background:black;"
οnmοuseοver="menu1.style.display='';" οnmοuseοut="menu1.style.display='none';">
菜单
</div>
<br/>
<OBJECT id="menu1" style="display:none;z-index:1000; position:absolute; top:40px; left:7px; width:100px; height:200px;"
type="text/x-scriptlet"
data="about:<div style='position:absolute;left:0px;top:0px;width:152px;height:200px;font:14px;color:white;background:black;border:1px solid black;'>
<table>
<tr><td>菜单1</td></tr>
<tr><td>菜单2</td></tr>
<tr><td>菜单3</td></tr>
<tr><td>菜单4</td></tr>
<tr><td>菜单5</td></tr>
<tr><td>菜单6</td></tr>
</table>
</div>"
οnmοuseοver="menu1.style.display='';"
οnmοuseοut="menu1.style.display='none';">
</OBJECT>
<iframe></iframe>
2. window.createPopup();
在IE5.5+版本才可用
<script type="text/javascript">
var oPopup = window.createPopup();
function popUp()
{
var str = "<table id=mypopup border=1 cellpadding=2 cellspacing=0 width=200 height=100 style='background: menu'>";
str += "<tr><td>第一项</td></tr>";
str += "<tr><td>第二项</td></tr>";
str += "<tr><td>第三项</td></tr>";
str += "<tr><td>第四项</td></tr>";
str += "</table>";
oPopup.document.body.innerHTML = str;
var w = oPopup.document.all.mypopup.width;
var h = oPopup.document.all.mypopup.height;
var x = window.event.clientX + window.screenLeft;
var y = window.event.clientY + window.screenTop;
oPopup.show(x, y, w, h);
}
</script>
3. iframe
用 iframe 来盖住 iframe, 将iframe 设置成绝对定位方式, 修改 z-index 值, 使之能够成为层,
然后在主页面里对 iframe 里的内容进行编写
4、在右边iframe中定义一个层,在左边iframe中可以控制层的显示与隐藏,使用Ajax取得子菜单内容,动态改变层的内容。
var rightframe = window.parent.frames["rightFrame"];
var rightDiv = rightframe.document.getElementById("right");
$(rightDiv).attr("style","left:20px;top:20px;z-index:99;position:absolute;background-color:red;display:'';");