自定义MOSS中的上下文菜单 (转)
修改文档库的上下文菜单
1)编辑一段我们需要添加到客户端的脚本
<script language="javascript">
function Custom_AddDocLibMenuItems(m, ctx)
{
var strDisplayText = "你好?"; // 菜单项的显示文字
var strAction = "alert('不好!')"; // 菜单项的实际功能
var strImagePath = ""; // 菜单项的显示图片
// 将菜单项添加到上下文菜单中
CAMOpt(m, strDisplayText, strAction, strImagePath);
// 添加一个分隔栏
CAMSep(m);
// 如果为true,不显示系统默认的菜单项
// 如果为fasle,显示系统默认的菜单项
return true;
}
</script>
(2)将自定义JavaScript脚本添加到页面中
浏览到需要添加到自定义菜单的文档库网站
“修改共享网页”=〉“添加Web部件”=〉“浏览”
将“内容编辑Web部件”拖动到页面中
选择“修改共享Web部件”
在“布局”中,除去“在网页上显示”的复选框
单击“源编辑器...”按钮,将写好的JavaScirpt脚本添加到对话框中,保存。
现在单击文档库文件的上下文菜单,应该只可以看到自己添加的菜单项了
实现原理
在服务器端的ows.js文件中我们可以看到如下的代码段
function AddDocLibMenuItems(m, ctx)
{
if (typeof(Custom_AddDocLibMenuItems) != “undefined”)
{
if (Custom_AddDocLibMenuItems(m, ctx))
return;
}
//其他
其中的Custom_AddDocLibMenuItems(m, ctx)就是sps为我们提供的接口
如果你想在MOSS中自定义列表或文档库中的上下文菜单,可以使用CustomAction的Feature来实现,也可以直接在页面上加一个内容编辑器(包括特定的一段Javascript)来实现,比如:
<script language="javascript">
function Custom_AddListMenuItems(m, ctx)
{
strDisplayText = "Send Email";
strAction = "STSNavigate('url')";
strImagePath="";
menuOption = CAMOpt(m,strDisplayText,strAction,strImagePath);
menuOption.id = "ID_MySubMenu";
return false;
}
</script>
个人感觉后面一种方式很有趣,灵活性较大。搜索了一下,发现两篇关于实现的方法,一中一英,呵呵,希望对你有所帮助。
用javascript自定义SharePoint文档库/列表项菜单
http://www.cnblogs.com/ycc/archive/2007/10/30/942223.html
Customizing SharePoint Context Menus
http://blogs.msdn.com/bowerm/articles/175691.aspx