1
我已经写了一个相当直接的SharePoint Online的JavaScript,我将其作为用户自定义操作部署到使用CSOM的根网站集中。UserCustomAction不针对非在线SharePoint的非租户管理员
下面的代码是我使用的供应脚本到网站集块:部署和测试最初的自定义操作,当我登录的租户管理员
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();
}
。一切工作如预期,直到我登录作为用户是而不是租户管理员。当以只有网站集管理员或更低级别的任何其他用户身份登录时,自定义操作不会触发,我所有的努力都是徒劳的。
这感觉就像是一个配置或权限问题,但我不知道该怎么看待纠正这个问题。
任何有帮助的想法将不胜感激!
尽管清除浏览器缓存,使用多个浏览器和所有其他技巧来处理潜在的缓存问题,但我认为这已经归结为缓存问题。我在打开我的网站时打开了IE开发者工具中的网络分析器,可以看到加载的JS文件。只要我看到它加载,预期的行为(在新标签或窗口中弹出外部链接)就表现出来了。但是,如果我在没有开发人员工具的情况下返回该网站,则不会加载该脚本。 –