NameCtrl 从客户端计算机上正在运行的 Communicator(或 Lync,如果您正在使用它)实例获取其大部分数据。没有数据直接从 SharePoint 拉回。要让 NameCtrl 在您的网页上正常工作,您需要确保:
- Communicator(或 Lync)正在客户端上运行,并且已登录
- 您调用 NameCtrl 的网页位于浏览器的 Intranet 或 Trusted Sites 区域中
推荐的模式是在调用任何其他方法之前在 NameCtrl 对象上调用 PresenceEnabled - 如果返回 false,则上述先决条件之一(或两者)为 false。下面的代码通常对我有用
<script>
var sipUri = "your.contact@your.domain.com";
var nameCtrl = new ActiveXObject('Name.NameCtrl.1');
if (nameCtrl.PresenceEnabled)
{
nameCtrl.OnStatusChange = onStatusChange;
nameCtrl.GetStatus(sipUri, "1");
}
function onStatusChange(name, status, id)
{
// This function is fired when the contacts presence status changes.
// In a real world solution, you would want to update an image to reflect the users presence
alert(name + ", " + status + ", " + id);
}
function ShowOOUI()
{
nameCtrl.ShowOOUI(sipUri, 0, 15, 15);
}
function HideOOUI()
{
nameCtrl.HideOOUI();
}
</script>
<span onmouseover="ShowOOUI()" onmouseout="HideOOUI()" style="border-style:solid">Your Contact</span>
如果您还没有看过它,这里有一个很好的(ish)NameCtrl参考