【问题标题】:UserCustomAction does not fire for non-tenant admin in SharePoint online不会为 SharePoint Online 中的非租户管理员触发 UserCustomAction
【发布时间】: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


【解决方案1】:

原来我的 JavaScript 中有 console.log 调用。某些版本的 IE 在没有调试工具的浏览器模式下显然不知道如何登录到控制台,这可能会引发未捕获和未记录的异常。删除 console.log 语句使问题消失。

【讨论】:

    猜你喜欢
    • 2021-04-07
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 2015-02-02
    • 2012-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多