【发布时间】:2016-09-29 19:19:46
【问题描述】:
我为 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();
}
在部署和初始测试自定义操作时,我以租户管理员身份登录。在我以非租户管理员的用户身份登录之前,一切都按预期工作。当以网站集管理员或更低级别的任何其他用户身份登录时,自定义操作不会触发,我的所有努力都是徒劳的。
这对我来说感觉像是一个配置或权限问题,但我不知道从哪里开始解决这个问题。
任何有用的想法将不胜感激!
【问题讨论】:
-
尽管清除了浏览器缓存、使用多个浏览器登录以及处理潜在缓存问题的所有其他技巧,但我认为这归结为缓存问题。我在访问我的网站时打开了 IE 开发人员工具中的网络分析器,可以看到 JS 文件正在加载。我一看到它加载,预期的行为(在新选项卡或窗口中弹出外部链接)就表现出来了。但是,如果我在没有运行开发人员工具的情况下返回该站点,则脚本将无法加载。
标签: sharepoint office365 sharepoint-online