【问题标题】:Adding presence indicator to a custom web part将状态指示器添加到自定义 Web 部件
【发布时间】:2010-10-12 21:09:34
【问题描述】:

我有一个自定义 Web 部件,它正在生成一些用户数据。我已经添加了适当的代码来输出标准状态图标和菜单,但是这很奇怪。

我的web part渲染出来的html如下:

<span>  
   <a href="http://mysite/Person.aspx?accountname=USERID">USERNAME</a>&nbsp;   
   <img border="0" height="12" width="12" src="/_layouts/images/blank.gif" onload="IMNRC('USEREMAIL')" id="imnUSERID" ShowOfflinePawn="1" />  
</span> 

显然替换了 USERID、USERNAME、USEREMAIL 等

问题是双重的。

1) 在 IE7 中,不会检索到存在信息。菜单显示正确,但图标未出现,当您将鼠标悬停在间隙上时,下拉菜单不提供 IM 设置。

2) 在 IE8 RC1 中,状态信息正确返回并显示图标,但下拉列表在图标上方几英寸处呈现。 (see this screenshot)

我们将非常欢迎有关这些问题的任何帮助,或有关向自定义 Web 部件添加状态的其他提示。

进度更新

- 将网页添加到 IE7 的“受信任的站点”- 什么也没做 - IE8 的兼容性视图没有区别。 - 更改为 id="CSRP_id,type=sip" 根据建议将代码更改为以下内容:

<span>     
<img class="PresenceImage" src="/_layouts/images/imnhdr.gif" onload="IMNRC('USEREMAIL')" name="imnmark" ShowOfflinePawn="1" id="contact_im,type=sip" />     
</span>

以上更新均未成功。

【问题讨论】:

  • 我不知道,但 img ID 标签是一个常量,还是您动态创建这些标签。 (有常数 ID 的问题,但无法判断它是否是同一件事)
  • 虽然我也尝试过使用基于 userID 的动态 id 并且也无法正常工作,但 id 是固定的。
  • 我注意到使用固定 ID 时,只有页面上的第一项会使用人员详细信息进行更新。

标签: sharepoint sharepoint-2007 web-parts


【解决方案1】:

首先,您将不得不消除您是否有样式问题或 javascript 问题。

如果您的所有存在气泡都正确显示,则获取IE Developer Toolbar 并尝试追溯css。甚至更改网站的主题,看看是否会得到不同的结果。

这是我们的 html,效果很好

 <span>
 <img width="12" src="/_layouts/images/blank.gif" onload="IMNRC('[USERMAIL]')" id="IMID[GUID]" ShowOfflinePawn=1 alt="Presence bubble">[USERNAME]</span>

注意:

[USERMAIL] = 显而易见 [用户名] = 明显 [GUID] = 随机 GUID

还要注意格式错误的 img 标签,没有结尾“/>”(只是“>”)。我们使用它,因为这是 SharePoint 生成的 html(请不要让我开始那个)。

【讨论】:

  • 感谢 Nat,我注意到您再次使用了稍微不同的技术。那么您是否建议我调整我的 html 以使用旧的 html 4 样式未封闭的 img 标签?
  • 很难知道。我并不是真正的 css 与浏览器专家,试一试,看看有什么用。
  • 仅供参考,我遇到了指示器渲染问题(当我将鼠标悬停在 Web 部件中的任何元素上时,指示器出现)- 将 IMG 包含在 SPAN 中,如上所示,已修复我的问题。没有深入了解原始帖子的问题; HTML 看起来与我的相同,并且在 IE7/8 中呈现良好。
猜你喜欢
  • 2014-11-29
  • 1970-01-01
  • 2012-04-14
  • 1970-01-01
  • 2011-06-13
  • 2010-12-25
  • 2021-10-08
  • 1970-01-01
  • 2010-11-25
相关资源
最近更新 更多