2016-09-29 9 views
1

CSOMを使用してルートサイトコレクションにユーザーカスタムアクションとして展開しているSharePoint Online用のかなり簡単なJavaScriptを作成しました。SharePointオンラインでテナント以外の管理者がUserCustomActionを起動しない

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ステートメントを削除すると、問題は解決されました。

関連する問題