邢台邯郸做网站,昆明手机网站建设,在线做图网站,银川网站建设0951摘要#xff1a; 相信很多朋友都遇到过需要将某个People类型的字段值设置为当前登录用户的情况而且已经给出了解决方案#xff0c;因此本文没有什么新意#xff0c;算法上也比较冗余#xff0c;仅仅在博客里算作知识的备份。 思路#xff1a; 在画面的右上角有一个欢迎控件…摘要 相信很多朋友都遇到过需要将某个People类型的字段值设置为当前登录用户的情况而且已经给出了解决方案因此本文没有什么新意算法上也比较冗余仅仅在博客里算作知识的备份。 思路 在画面的右上角有一个欢迎控件现实内容为“Welcome, 登陆用户名”我们的代码就是要把这个用户名取出来然后取到PeoplePicker字段对应的DIV调用innerHTML属性来进行值得设置。 步骤 第一步取得登陆用户通过Welcome来查找 function getCurrentUser()
{ var tags document.getElementsByTagName(a); for (var i0; i tags.length; i) { if(tags[i].innerText.substr(0,7) Welcome) { return tags[i].innerText.substr(8,tags[i].innerText.length); } }
}第二步查找PeoplePicker字段对应的DIV一层一层往里追溯算法并不好最后break后还会继续循环虽然对最终结果没什么影响但不是什么好算法有兴趣的朋友发现好的算法或者通过JQuery可以查到的算法欢迎共享 function getPickerInputElement(fieldsInternalName)
{ var result ; var divs document.getElementsByTagName(DIV); for(var i0; i divs.length ; i) { if(divs[i].idWebPartWPQ2) { var tds divs[i].getElementsByTagName(TD); for(var j0; j tds.length; j) { var cellHTML tds[j].innerHTML; if(cellHTML.indexOf(FieldInternalName fieldsInternalName ) 0) { var innerDivs tds[j].getElementsByTagName(DIV); for(var k0; k innerDivs .length; k) { if(innerDivs[k].id.indexOf(UserField_upLevelDiv) 0) { result innerDivs[k]; break; } } } } } } return result;
} 第三步设置值我们通过一个叫做fillPeoplePickerWithCurrentUser的方法来进行设置调用SharePoint库方法_spBodyOnLoadFunctionNames确保方法会在页面内容加载完成后执行。 _spBodyOnLoadFunctionNames.push(fillPeoplePickerWithCurrentUser);function fillPeoplePickerWithCurrentUser()
{ var currentUser getCurrentUser(); if(currentUser ! null) { var pp getPickerInputElement(“SetMe”); if(pp ! null) pp.innerHTML currentUser; }
} 说明 本方法没有在Firefox浏览器进行调试。转载于:https://www.cnblogs.com/johnsonwong/archive/2011/06/12/2079147.html