_sppagecontext.userEmail不会为所有用户返回电子邮件ID。对于某些用户,需要_spPageContextInfo.userLoginNam。
对于SharePoint Online,用户登录名和userEmail应该相同,并且将是:[email protected]
对于SharePoint On-Premise,_spPageContextInfo仅为email和Loginname提供userId属性:
<script src="//code.jquery.com/jquery-3.1.0.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
var userid = _spPageContextInfo.userId;
function GetCurrentUser() {
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";
var requestHeaders = { "accept" : "application/json;odata=verbose" };
$.ajax({
url : requestUri,
contentType : "application/json;odata=verbose",
headers : requestHeaders,
success : onSuccess,
error : onError
});
}
function onSuccess(data, request){
console.log(data.d);
var loginName = data.d.LoginName;
var email=data.d.Email;
alert(loginName);
alert(email);
}
function onError(error) {
alert(error);
}
GetCurrentUser();
});
</script>
确保当前用户配置文件中的工作电子邮件不为空。