我现在是拼成一个菜单的html层,其样式很像是右键菜单的风格。
但是,当在TextBox右键弹出时,
我用document.writeln(str);这个方法来呈现在页面上,
结果页面上东西全丢了,
只有菜单的html代码。
我应如何实现:
当右键的时候,弹出的是菜单,而原来的页面还存在。
但是,当在TextBox右键弹出时,
我用document.writeln(str);这个方法来呈现在页面上,
结果页面上东西全丢了,
只有菜单的html代码。
我应如何实现:
当右键的时候,弹出的是菜单,而原来的页面还存在。
解决方案 »
- iframe自刷新问题 方法在火狐报异常但能得到结果,在ie不执行
- return false 失效
- 网站开发 弹出即时通讯对话框
- 大家看下这个AJAX效果是咋做的?!
- 数据库查询出来的数据生成的下拉框。我要用javascript 给它指定一个值
- html编辑器问题
- width,posWidth,clientWidth,offsetWidth 这几个Width有什么不同的地方?请高手清楚的讲一下.
- ie下正常运行,firefox下提示有错误
- 紧急求助javascript的水平无级下拉菜单,我现在顶替多能够分三级,怎么修改原有的脚本?谢谢。
- 我记得有一个用网站,能够在线用Javascript编辑文档,大家帮我找一下。
- 我最近打算好好学JAVASCRIPT,请大家推荐有什么好的入门书.
- 请好心人相助!感激不尽。。。
时间:2005-11-7
描述:MxxPopMenu(htc) v1.0
调用方法:在<head></head>中添加
<style type="text/css">
.popMenu{ behavior: url(MxxPopMenu.htc);}
</style>
为需要菜单的对象添加 class="popMenu"
e.g:<body class ="popMenu"></body>
-->
<!--
接口定义
-->
<public:component>
<public:property name="description" value="Editable table" />
<public:property name="version" value="1.0.0.0" /> <public:attach event="oncontentready" onevent="init()" />
<public:attach event="oncontextmenu" onevent="showMenu()" /></public:component>
<!--
组件实现
--><script language="javascript">
var oPopup=null; //弹出菜单
var popWidth=110; //弹出菜单的宽度
var popHeight=140; //弹出菜单的高度
var curRow=null; //记录弹出菜单最后指向的行function init(){
oPopup = window.createPopup();
var oPopBody = oPopup.document.body;
//设置菜单样式
oPopBody.style.backgroundColor = "scrollbar";
oPopBody.style.border = "2px solid";
oPopBody.style.borderColor = "buttonhighlight buttonshadow buttonshadow buttonhighlight"
var strHTML=""
strHTML+='<table oncontextmenu="return false;" onselectstart="return false;" id="tbMenu" ';
strHTML+=' style="cursor:default; width:100%; height:100%;font-size:12px;" border=0 cellpadding=0 cellspacing=2>';
//在这里扩展菜单的选项start
strHTML+='<tr operation="edit"><td> 编辑</td></tr>';
strHTML+='<tr operation="refresh"><td> 刷新</td></tr>';
strHTML+='<tr operation="addrowup"><td> 添加新行(上)</td></tr>';
strHTML+='<tr operation="addrowdown"><td> 添加新行(下)</td></tr>';
strHTML+='<tr operation="delrow"><td> 删除该行</td></tr>';
strHTML+='<tr operation="moveup"><td> 向上移动一行</td></tr>';
strHTML+='<tr operation="movedown"><td> 向下移动一行</td></tr>';
//在这里扩展菜单的选项end
strHTML+='</table>'; oPopBody.innerHTML=strHTML;
var tb = oPopup.document.getElementById("tbMenu");
var rs=tb.rows;
for(var i=0;i<rs.length;i++){
var row=rs[i];
addEvent(row);
}
}function showMenu(){
var e=window.event;
var src=e.srcElement;
oPopup.show(window.event.clientX, window.event.clientY, popWidth, popHeight, document.body);
window.event.returnValue=false;
}function addEvent(row){
row.attachEvent("onmouseover",function(){selRow(row)});
row.attachEvent("onclick",function(){onEvent(row)});
}
function selRow(src){
if(curRow!=null){ curRow.style.backgroundColor="scrollbar"; curRow.style.color="black";}
curRow=src; curRow.style.backgroundColor="midnightblue"; curRow.style.color="white";
}function onEvent(src){
oPopup.hide();
switch(src.operation){
//在这里为菜单项的点击事件添加处理方法
//本示例的方法只供参考,没有实现
case "edit": example(src.operation); break;
case "refresh": example(src.operation); break;
case "addrowup": example(src.operation); break;
case "addrowdown": example(src.operation); break;
case "delrow": example(src.operation); break;
case "moveup": example(src.operation); break;
case "movedown": example(src.operation); break;
default: return;
}
src.style.backgroundColor="scrollbar";
src.style.color="black";
curRow=null;
}function example(str){
alert("您选择了"+str+"操作!");
}
</script>
因为我的菜单的是有二级菜单的,当从一个父菜单移到另一个父菜单时,第一个
菜单的子菜单就会被隐掉。而这个隐掉的功能是通过js来实现的。现在我的菜单也出来了,实现方法是在页面上放一个div层,然后往里面插html菜单代码。
但是老是被select控件挡住了。不知有没有办法改决这个问题?
有人说往div里写一个iframe如:
<div>
...我的菜单html...
<iframe....></iframe
</div>
但是这样不起作用。
另外我用:
oPopup = window.createPopup();
oPopup.show(window.event.clientX, window.event.clientY, popWidth, popHeight, document.body);
可是,这样做我的菜单样式与js脚本都不起作用了。
楼上的兄弟给点意见好么?