js文件所在目录C:/Program Files/Common Files/Microsoft Shared/web server extensions/12/TEMPLATE/LAYOUTS/1033
OWS.js MENU.JS INIT.JS
// JavaScript Document
*********************************************************
以下是在ows.js中的变量。做自定义菜单传递参数时可能用得到
var IsMenuShown=false;
var itemTableDeferred=null;
var itemTable=null;
var imageCell=null;
var onKeyPress=false;
var downArrowText=null;
var currentCtx=null;
var currentEditMenu=null;
var currentItemID=null;
var currentItemAppName=null;
var currentItemProgId=null;
var currentItemIcon=null;
var currentItemOpenControl=null;
var currentItemFileUrl=null;
var currentItemFSObjType=null;
var currentItemCheckedOutUserId=null;
var currentItemCheckoutExpires=null;
var currentItemModerationStatus=null;
var currentItemUIString=null;
var currentItemCheckedoutToLocal=null;
var bIsCheckout=0;
var currentItemCanModify=null;
var currentItemPermMaskH=null;
var currentItemPermMaskL=null;
var currentItemIsEventsExcp=null;
var currentItemIsEventsDeletedExcp=null;
var UTF8_1ST_OF_2=0xc0 ;
var UTF8_1ST_OF_3=0xe0 ;
var UTF8_1ST_OF_4=0xf0 ;
var UTF8_TRAIL=0x80 ;
var HIGH_SURROGATE_BITS=0xD800 ;
var LOW_SURROGATE_BITS=0xDC00 ;
var SURROGATE_6_BIT=0xFC00 ;
var SURROGATE_ID_BITS=0xF800 ;
var SURROGATE_OFFSET=0x10000;
**********************************************************
function OnItem(elm)
{
DeferCall('OnItemDeferCall', elm);
}
function DeferCall()
{
if (arguments.length==0)
return null;
var args=arguments;
var fn=null;
if (browseris.ie5up || browseris.nav6up)
{
eval("if (typeof("+args[0]+")=='function') { fn="+args[0]+"; }");
}
if (fn==null)
return null;
if (args.length==1) return fn();
else if (args.length==2) return fn(args[1]);
else if (args.length==3) return fn(args[1], args[2]);
else if (args.length==4) return fn(args[1], args[2], args[3]);
else if (args.length==5) return fn(args[1], args[2], args[3], args[4]);
else if (args.length==6) return fn(args[1], args[2], args[3], args[4], args[5]);
else if (args.length==7) return fn(args[1], args[2], args[3], args[4], args[5], args[6]);
else if (args.length==8) return fn(args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
else if (args.length==9) return fn(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8]);
else if (args.length==10) return fn(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
else
{
var L_TooManyDefers_Text="Too many arguments passed to DeferCall";
alert(L_TooManyDefers_Text);
}
return null;
}
function OnItemDeferCall(elm)
{
if (!IsMenuEnabled())
return false;
if (IsMenuOn())
{
StartDeferItem(elm);
return false;
}
if (itemTable !=null)
OutItem();
itemTable=elm;
currentItemID=GetAttributeFromItemTable(itemTable, "ItemId", "Id");
var createCtx=new Function("setupMenuContext("+itemTable.getAttribute("CTXName")+");");
createCtx();
var ctx=currentCtx;
if (browseris.nav6up)
itemTable.className="ms-selectedtitlealternative";
else
itemTable.className="ms-selectedtitle";
if (browseris.ie5up && !browseris.ie55up)
{
itemTable.onclick=EditMenuDefaultForOnclick;
itemTable.oncontextmenu=EditMenuDefaultForOnclick;
}
else
{
itemTable.onclick=CreateMenu;
itemTable.oncontextmenu=CreateMenu;
}
itemTable.onmouseout=OutItem;
var titleRow;
titleRow=GetFirstChildElement(GetFirstChildElement(itemTable));
if (titleRow !=null)
{
imageCell=GetLastChildElement(titleRow);
}
if (ctx.listTemplate==200)
{
if (itemTable.getAttribute("menuType")=="Orphaned")
downArrowText=L_Reschedule_Text;
}
else
downArrowText=L_Edit_Text;
var imageTag=GetFirstChildElement(imageCell);
imageTag.src=ctx.imagesPath+"menudark.gif";
imageTag.alt=downArrowText;
imageTag.style.visibility="visible";
imageCell.className="ms-menuimagecell";
return false;
}
function CreateMenu(e)
{
if (!IsContextSet())
return;
var ctx=currentCtx;
if (e==null)
e=window.event;
var srcElement=e.srcElement ? e.srcElement : e.target;
if (itemTable==null || imageCell==null ||
(onKeyPress==false &&
(srcElement.tagName=="A" ||
srcElement.parentNode.tagName=="A")))
return;
return CreateMenuEx(ctx, itemTable, e);
}
function CreateMenuEx(ctx, container, e)
{
if (container==null)
return;
IsMenuShown=true;
document.body.onclick="";
var m;
m=CMenu(currentItemID+"_menu");
if (!m)
return;
else if (ctx.isVersions)
AddVersionMenuItems(m, ctx);
else if (ctx.listBaseType==1)
AddDocLibMenuItems(m, ctx);
else if (ctx.listTemplate==200)
AddMeetingMenuItems(m, ctx);
else
AddListMenuItems(m, ctx);
InsertFeatureMenuItems(m, ctx);
currentEditMenu=m;
container.onmouseout=null;
OMenu(m, container, null, null, -1);
itemTable=GetSelectedElement(container, "TABLE");
m._onDestroy=OutItem;
e.cancelBubble=true;
return false;
}
function AddListMenuItems(m, ctx)
{
if (typeof(Custom_AddListMenuItems) !="undefined")
{
if (Custom_AddListMenuItems(m, ctx))
return;
}
if (currentItemFileUrl==null)
currentItemFileUrl=GetAttributeFromItemTable(itemTable, "Url", "ServerUrl");
var currentItemEscapedFileUrl;
if (currentItemFileUrl !=null)
currentItemEscapedFileUrl=escapeProperly(unescapeProperly(currentItemFileUrl));
if (currentItemIsEventsExcp==null)
{
currentItemIsEventsExcp=false;
currentItemIsEventsDeletedExcp=false;
currentItemEvtType=itemTable.getAttribute("EventType");
if(currentItemEvtType !=null &&
(currentItemEvtType==2 || currentItemEvtType==3 || currentItemEvtType==4))
{
currentItemIsEventsExcp=true;
if (currentItemEvtType==3)
currentItemIsEventsDeletedExcp=true;
}
}
var menuOption;
if (ctx.listBaseType==3 && ctx.listTemplate==108)
{
strDisplayText=L_Reply_Text;
if(itemTable.getAttribute("Ordering").length>=504)
{
var L_ReplyLimitMsg_Text="Cannot reply to this thread. The reply limit has been reached.";
strAction="alert('"+L_ReplyLimitMsg_Text+"')";
}
else
{
strAction="STSNavigate('"+ctx.newFormUrl
+"?Threading="+escapeProperly(itemTable.getAttribute("Ordering"))
+"&Guid="+escapeProperly(itemTable.getAttribute("ThreadID"))
+"&Subject="+escapeProperly(itemTable.getAttribute("Subject"))
+"&Source="+GetSource()+"')";
}
strImagePath=ctx.imagesPath+"reply.gif";
menuOption=CAMOpt(m, strDisplayText, strAction, strImagePath, null, 100);
menuOption.id="ID_Reply";
}
AddSharedNamespaceMenuItems(m, ctx);
if (currentItemID.indexOf(".0.") < 0 && HasRights(0x0, 0x8)
&& !currentItemIsEventsExcp)
{
if (ctx.listBaseType==4)
strDisplayText=L_DeleteResponse_Text;
else
strDisplayText=L_DeleteItem_Text;
strAction="DeleteListItem()";
strImagePath=ctx.imagesPath+"delitem.gif";
menuOption=CAMOpt(m, strDisplayText, strAction, strImagePath, null, 300);
menuOption.id="ID_DeleteItem";
}
var contentTypeId=itemTable.getAttribute("CId");
if (contentTypeId !=null && contentTypeId.indexOf("0x0106")==0
&& HasRights(0x10, 0x0))
{
strDisplayText=L_ExportContact_Text;
strAction="STSNavigate('"+ctx.HttpPath+"&Cmd=Display&CacheControl=1&List="+ctx.listName+"&ID="+currentItemID+"&Using="+escapeProperly(ctx.listUrlDir)+"/vcard.vcf"+"')";
strImagePath=ctx.imagesPath+"exptitem.gif";
menuOption=CAMOpt(m, strDisplayText, strAction, strImagePath, null, 350);
menuOption.id="ID_ExportContact";
}
CAMSep(m);
if (ctx.verEnabled==1)
{
AddVersionsMenuItem(m, ctx, currentItemEscapedFileUrl);
}
AddWorkflowsMenuItem(m, ctx);
CAMSep(m);
if ((currentItemID.indexOf(".0.") < 0)
&& HasRights(0x80, 0x0))
{
strDisplayText=L_Subscribe_Text;
strAction="NavigateToSubNewAspx('"+ctx.HttpRoot+"', 'List="+ctx.listName+"&ID="+currentItemID+"')";
strImagePath="";
menuOption=CAMOpt(m, strDisplayText, strAction, strImagePath, null, 1100);
menuOption.id="ID_Subscribe";
}
if (ctx.isModerated==true &&
HasRights(0x0, 0x10) && HasRights(0x0, 0x4)
&& HasRights(0x0, 0x21000) && ctx.listBaseType !=4)
{
strDisplayText=L_ModerateItem_Text;
strAction="STSNavigate('"+ctx.HttpRoot+"/_layouts/approve.aspx?List="+ctx.listName
+"&ID="+currentItemID+"&Source="+GetSource()+"')";
strImagePath=ctx.imagesPath+"apprj.gif";
menuOption=CAMOpt(m, strDisplayText, strAction, strImagePath, null, 1150);
menuOption.id="ID_ModerateItem";
}
if (currentItemFSObjType==1 &&
ctx.ContentTypesEnabled &&
ctx.listTemplate !=108)
{
strDisplayText=L_CustomizeNewButton_Text;
strAction="STSNavigate('"+ctx.HttpRoot+"/_layouts/ChangeContentTypeOrder.aspx?List="+ctx.listName+"&RootFolder="+currentItemEscapedFileUrl+"&Source="+GetSource()+"')";
strImagePath="";
menuOption=CAMOpt(m, strDisplayText, strAction, strImagePath, null, 1170);
menuOption.id="ID_CustomizeNewButton";
}
}