我已经为SharePoint Online编写了一个相当直接的JavaScript,我使用CSOM将其作为用户自定义操作部署到根网站集中。
以下代码是我用于将脚本配置到网站集的块:
public static void ProvisionScriptLinkCustomAction(ClientContext ctx, string name, string url)
{
Site site = ctx.Site;
ctx.Load(site.UserCustomActions);
ctx.ExecuteQuery();
foreach (UserCustomAction action in site.UserCustomActions)
{
if (action.Name == name)
{
action.DeleteObject();
break;
}
}
ctx.ExecuteQuery();
UserCustomAction customAction = site.UserCustomActions.Add();
customAction.Location = "ScriptLink";
customAction.Name = name;
customAction.ScriptSrc = url + "?" + Guid.NewGuid().ToString();
customAction.Update();
ctx.ExecuteQuery();
}
我在部署和初始测试自定义操作时以租户管理员身份登录。一切按预期工作,直到我以不租户管理员的用户身份登录。以仅作为网站集管理员或更低版本的任何其他用户身份登录时,自定义操作不会触发,我的所有工作都是徒劳的。
这对我来说感觉就像配置或权限问题,但我不知道该如何开始知道如何纠正这个问题。
非常感谢任何有用的想法!
答案 0 :(得分:0)
原来我的JavaScript中有console.log调用。某些版本的IE显然不知道如何在没有调试工具的浏览器模式下登录到控制台,这可能会引发未被捕获和未记录的异常。删除console.log语句会使问题消失。