У меня проблема с индикаторами присутствия в sharepoint 2007, когда я добавляю на страницу несколько контактных веб-частей.
Я заметил, что у меня всегда были серые пузыри, когда было добавлено более одного контакта, поэтому я искал решение в Интернете. Кто-то обнаружил, что идентификатор тега img (пузырька индикатора присутствия) не должен быть уникальным. Поскольку SharePoint автоматически добавляет статические идентификаторы в тег img, мне нужно было переопределить идентификатор. Поэтому я написал этот код JavaScript (на самом деле скопировал функции guid; -)):
function S4()
{
return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
}
function guid() {
return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
}
window.IMNRC = function(native) {
return function(name, elem) {
if(elem != null)
{
if(elem.id="contact_im,type=sip")
{
elem.id = guid();
}
}
native(name, elem);
}
}(window.IMNRC);
Не знаю, хороший ли это код, но когда я добавил его на страницу, всплывающее окно показало хорошее присутствие контакта.
Единственная проблема, которая у меня сейчас есть, заключается в том, что меню не работает. При наведении курсора на индикатор присутствия он становится серым, и все ссылки в меню не работают.
Мой коллега заметил, что когда он завис над индикатором присутствия, появилась подсказка с именем контакта. Странная вещь здесь - то, что имя не соответствовало контакту. Когда он обновился, он заметил, что имя во всплывающей подсказке случайно меняется. Так что я думаю, что это как-то связано с тем, что я играю с идентификаторами тега img.
Так что теперь у меня есть 2 варианта:
- Или мне нужно начать все сначала и не связываться с идентификаторами, отсутствующими в теге img, и найти другое решение проблемы с индикатором присутствия.
- или мне нужно исправить проблему с меню.
Может ли кто-нибудь помочь мне с любым из 2 вариантов?
Спасибо!