簡體   English   中英

Sharepoint 2013 Online-在頁面中顯示currentUser信息

[英]Sharepoint 2013 Online - Display currentUser information in page

我需要獲取currentUser信息,例如在將Home.aspx頁面加載到頁面的特定區域(如頁腳區域)中時的電子郵件地址和/或名稱。 我進行了搜索,發現的每個JavaScript均不起作用。 我需要文本在腳本編輯器或內容編輯器或XML文件中顯示。

我發現的以下JavaScript有什么問題。 我在WebApp腳本編輯器中擁有它:

<script type=”text/javascript”>
ExecuteOrDelayUntilScriptLoaded(init,”sp.js”);
var currentUser;
 function init(){
  this.clientContext = new SP.ClientContext.get_current();
  this.oWeb = clientContext.get_web();
  currentUser = this.oWeb.get_currentUser();
  this.clientContext.load(currentUser);
  this.clientContext.executeQueryAsync(Function.createDelegate(this,this.onQuerySucceeded), Function.createDelegate(this,this.onQueryFailed));
 }

function onQuerySucceeded() {
  document.getElementById(“logUser”).innerHTML = currentUser.get_loginName(); 
 }

function onQueryFailed(sender, args) {
  alert(‘Request failed. \nError: ‘ + args.get_message() + ‘\nStackTrace: ‘ + args.get_stackTrace());
 }
< /script>
< div>Current Logged User:<label id=”logUser”></label></div>

誰能幫我?

由於SP.SOD.executeOrDelayUntilScriptLoaded方法期望首先加載SharePoint客戶端庫sp.js ,因此很可能不會執行init方法。 請改用SP.SOD.executeFunc方法,因為它支持按需腳本。

SP.SOD.executeFunc('sp.js', 'SP.ClientContext',function(){  
  var context = new SP.ClientContext.get_current();
  var web = context.get_web();
  var currentUser = web.get_currentUser();
  context.load(currentUser);
  context.executeQueryAsync(
  function(){
      console.log(currentUser.get_loginName()); 
  }, 
  function(sender, args){
      console.log('Request failed. \nError: ' + args.get_message() + '\nStackTrace: ' + args.get_stackTrace());
  });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM