2016-09-29 29 views
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(); 
    } 

。一切工作如预期,直到我登录作为用户是而不是租户管理员。当以只有网站集管理员或更低级别的任何其他用户身份登录时,自定义操作不会触发,我所有的努力都是徒劳的。

这感觉就像是一个配置或权限问题,但我不知道该怎么看待纠正这个问题。

任何有帮助的想法将不胜感激!

+0

尽管清除浏览器缓存,使用多个浏览器和所有其他技巧来处理潜在的缓存问题,但我认为这已经归结为缓存问题。我在打开我的网站时打开了IE开发者工具中的网络分析器,可以看到加载的JS文件。只要我看到它加载,预期的行为(在新标签或窗口中弹出外部链接)就表现出来了。但是,如果我在没有开发人员工具的情况下返回该网站,则不会加载该脚本。 –

回答

0

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

相关问题