2010-06-15 5 views
2

В настоящее время я реализую веб-часть на основе AJAX, которая отображает результат поиска. Этот результат поиска имеет имена пользователей и напротив каждого имени, которое я показываю индикатору присутствия OCS. Этот индикатор отлично работает в IE6, но я не могу заставить его работать в IE7/8.Присутствие OCS в веб-части SharePoint AJAX

В основном проблема в IE7/8 заключается в том, что OCS визуализируется, но при наведении мыши на него ничего не отображается. Если вы попытаетесь прокрутить страницу вниз, а затем наведите указатель мыши на значок OCS, вы увидите меню действий OCS в нижней части страницы, а не увидите его напротив имени пользователя.

На моей веб-части, основанной на AJAX, используется метод jQuery post, чтобы сделать запрос на сервер и получает json, который затем передается в div.

Мой HTML для имени пользователя выглядит следующим образом:

<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='[email protected]' 
       src='/_layouts/images/blank.gif' valign='middle' name='imnmark' alt='No presence information' title=''> 
     </a> 
    </span> 
</nobr> 

После HTML выше визуализируется на странице я называю следующие две строки кода:

//have to reset this value, otherwise ProcessImn() fails after next AJAX request 
imnCount = 0; 
ProcessImn(); 

Любые идеи, почему это не работает в IE7/8?

+0

Добро пожаловать на SO, пожалуйста, не забудьте посетить http://stackoverflow.com/faq – Reigel

+0

Что 'ProcessImn()' делать? Он добавляет/изменяет DOM, или это образец кода, который вы опубликовали в конце? – CBono

+0

ProcessImn() - это функция, объявленная в файле init.js в 12 кустах. Он применяет значок и меню OCS к элементам с определенным атрибутом имени –

ответ

1

Я уверен, что неуправляемые элементы управления присутствием вызваны ошибкой init.js в SharePoint 2007. В init.js не учитывается прокрутка. Поскольку вы не должны прикасаться к файлам, которые являются готовыми к работе и ломаются, вы можете взломать свой собственный JavaScript, который устанавливает ActiveX NameControl для присутствия. Я не могу взять кредит на исправление. Я нашел его в Google. К сожалению, я не могу вспомнить, где я читал об этом.

Если вам необходимо взломать init.js SharePoint 2007, вы можете попробовать это:

В функции IMNShowOOUI (inputType),

Я хотел бы изменить строки из:

oouiX=objRet.oouiX; 
oouiY=objRet.oouiY; 

на следующее:

oouiX = (objRet.oouiX - document.body.parentNode.scrollLeft; 
oouiY = (objRet.oouiY - document.body.parentNode.scrollTop; 

Вместо init.js, вы можете попробовать взломать JavaScript, который поставляется с примером MS "Presence in Web Applications" Опасайтесь, что вам придется применить то же исправление для проблемы прокрутки.

Удачи :)

 Смежные вопросы

  • Нет связанных вопросов^_^