如何在MOSS列表或文档库中增加编辑菜单,比较直接的方案无外乎feature和js这两种方案,用js更加灵活一些,譬如只针对某个列表库或文档库的操作
如果不清楚如何用js增加菜单的,参考皮皮的文章吧
但是有个缺陷,在feature中urlaction 是可以用{ListId}和{ItemId}这样的方式取得当前List的ID和其它环境参数的,而在Js中却没了效果,但我们再来看看Core.js中原函数function AddListMenuItems(m, ctx),这个ctx对象是可以取得当前上下文中很多参数的
具体看下面这段代码
Code
<script language="javascript">
function Custom_AddListMenuItems(m, ctx)
{
strDisplayText = "详细信息";
var rootMenu = CASubM(m,strDisplayText,"","",500);
strDisplayText = "人员详细信息";
strAction = "STSNavigate('"+ctx.HttpRoot+"/Lists/List9/EditPerson.aspx?ID="+currentItemID+"')";
strImagePath=ctx.imagesPath+"oisweb.gif";
menuOption = CAMOpt(rootMenu,strDisplayText,strAction,strImagePath);
menuOption.id = "ID_MySubMenu";
strDisplayText = "人员合同信息";
strAction = "STSNavigate('"+ctx.HttpRoot+"/Lists/List9/EditOrg.aspx?ID="+currentItemID+"')";
strImagePath=ctx.imagesPath+"oisweb.gif";
menuOption = CAMOpt(rootMenu,strDisplayText,strAction,strImagePath);
menuOption.id = "ID_MySubMenu";
return false;
}
</script>
ctx.HttpRoot当前的web站点地址
currentItemID当前的ItemId
ctx.listName当前列表名称
。。。。。。
诸如此类,还有很多,大家自己打开 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\LAYOUTS\2052(中文)下的core.js
查找 AddListMenuItems(m, ctx)这个函数看看就知道了,文档库也差不多