首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于SharePoint AJAX的web部件中的OCS状态

基于SharePoint AJAX的web部件中的OCS状态
EN

Stack Overflow用户
提问于 2010-06-15 16:41:48
回答 1查看 2.8K关注 0票数 2

我目前正在实现显示搜索结果的基于AJAX的web部件。这个搜索结果包含用户名,与每个名称相对的是OCS在线状态指示器。这个指示器在IE6中工作得很好,但我不能让它在IE7/8中工作。

基本上,IE7/8中的问题是渲染了OCS,但当您将鼠标悬停在它上面时,什么也不会显示。如果您尝试向下滚动页面,然后将鼠标放在OCS图标上,您将在页面底部看到OCS操作菜单,而不是在用户名的对面。

我的基于AJAX的web部件使用json post方法向服务器发出请求,并接收jQuery,然后将其呈现给div。

用户名的HTML如下所示:

代码语言:javascript
复制
<nobr>
    <span>
        <a target='_blank' href='/ViewExpert.aspx?uid=4'>Some Expert</a>
            <img height='1' width='3' border='0' alt='' src='/_layouts/images/blank.gif'><a class='ms-imnlink'
                onclick='IMNImageOnClick();return false;' href='javascript:'>
            <img height='12' width='12' border='0' id='3' ShowOfflinePawn='1' type='smtp' sip='sip@sip.com'
                src='/_layouts/images/blank.gif' valign='middle' name='imnmark' alt='No presence information' title=''>
        </a>
    </span>
</nobr>

在页面上呈现上面的HTML之后,我调用以下两行代码:

代码语言:javascript
复制
//have to reset this value, otherwise ProcessImn() fails after next AJAX request
imnCount = 0;
ProcessImn();

你知道为什么它在IE7/8中不能工作吗?

EN

回答 1

Stack Overflow用户

发布于 2010-07-09 07:04:36

我确信错误放置的状态控件是由SharePoint 2007中的错误init.js引起的。init.js不支持滚动。由于您不应该接触开箱即用的文件并破坏对它的支持,因此您可能想要破解您自己的JavaScript来设置ActiveX NameControl以实现在线状态。我不能接受修复的功劳。我是通过谷歌找到的。不幸的是,我不记得我在哪里读到过它。

如果你必须破解SharePoint 2007的init.js,你可能想尝试一下:

在函数IMNShowOOUI(inputType)中,

我会将行从以下位置更改:

代码语言:javascript
复制
oouiX=objRet.oouiX;
oouiY=objRet.oouiY;

设置为以下内容:

代码语言:javascript
复制
oouiX = (objRet.oouiX - document.body.parentNode.scrollLeft;
oouiY = (objRet.oouiY - document.body.parentNode.scrollTop; 

而不是init.js,您可能想尝试破解MS example "Presence in Web Applications"附带的JavaScript,但请注意,您将不得不对滚动问题应用相同的修复程序。

祝你好运:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3043700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档