2012-07-06 69 views
0

我能夠在SharePoint SitePage中獲取當前登錄用戶的全名。不過,我需要在它後面使用全名,並且使用它進行操作。不幸的是,它沒有按預期工作。獲取SharePoint中登錄用戶的用戶名並立即使用它

下面是代碼

<script type="text/javascript"> 
    var currentUser = ""; 
    $(document).ready(function() { 
     AddItem(); 
     alert(currentUser); 
    }); 

    function AddItem() 
    { 
     var context = new SP.ClientContext.get_current(); 
     var web = context.get_web(); 
     user = context.get_web().get_currentUser(); 

     context.load(this.user); 
     context.executeQueryAsync(Function.createDelegate(this, this.onSuccessMethod), 
     Function.createDelegate(this, this.onFailureMethod)); 
    } 
    function onSuccessMethod(sender, args) { 
     currentUser = this.user.get_title(); 
     //alert(' Name:' + this.user.get_title() + '\n Login:' + this.user.get_loginName()); 
    } 
    function onFaiureMethod(sender, args) { 
     //alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace()); 
    } 
</script> 

現在我想,既然我打電話警報(currentUser)的AddItem()之後,我會得到的當前登錄的用戶名,但它並非如此,因爲它給了我空弦。基本上alert(currentUser)在AddItem()之前被調用。

任何想法/建議將不勝感激。

回答

0

我不知道什麼共享點(我似乎記得一些古老的微軟平臺),但我認爲我可以告訴你問題是什麼。

AddItem執行一個異步操作,這意味着它最初不會做很多事情,並且在AddItem函數觸發之前觸發警報get。所以你可能會想要的東西是沿線:

var currentUser = ""; 
$(document).ready(function() { 
    AddItem(function(){ 
     alert(currentUser); 
    }); 
}); 

function AddItem(callback) 
{ 
    var context = new SP.ClientContext.get_current(); 
    var web = context.get_web(); 
    user = context.get_web().get_currentUser(); 

    context.load(this.user); 
    context.executeQueryAsync(Function.createDelegate(this, function(sender, args) { 
     currentUser = this.user.get_title(); 
     callback(); 
     //alert(' Name:' + this.user.get_title() + '\n Login:' + this.user.get_loginName()); 
    }),Function.createDelegate(this, this.onFailureMethod)); 
} 
function onFaiureMethod(sender, args) { 
    //alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace()); 
} 
+0

得到一個錯誤,說「回調」未定義。請讓我知道,如果這個錯誤對你來說顯而易見。 我只是需要一種方法來執行異步調用後的一些代碼。 – premsh 2012-07-06 18:30:34

+0

原始問題的縮進極其混亂,所以我誤認爲onSuccess方法處於相同的範圍。 (在原始問題中也修正了縮進) – 2012-07-06 20:37:39

相關問題