Vitro-CAD
http://vitro-cad.ru/support-forum/

Как устранить ошибку работы PeopleEditor/Dialog в IE9-11
http://vitro-cad.ru/support-forum/viewtopic.php?f=7&t=3
Страница 1 из 1

Автор:  Support [ 28 июл 2014, 17:53 ]
Заголовок сообщения:  Как устранить ошибку работы PeopleEditor/Dialog в IE9-11

В sharepoint 2010 в IE9-10 при выставлении режима документов "Стандартный" перестаю работать котролы на основе PickerDialog (PeopleEditor, кастомный лукап): при проверке имени, или при выборе значения из диалогового окна возникает ошибка:
Префикс пространства имен "xsd" не определен. ( System.InvalidOperationException: Namespace prefix 'xsd' is not defined).
В других браузерах эта ошибка не возникает.

причина ошибки:
В скрипте EntityEditor.js в функции ConvertEntityToSpan происходит сериализация данных с использованием функции XMLSerializer()

Код:
      
var serializer=new XMLSerializer();
data=serializer.serializeToString(extraData.firstChild);


в IE9/10/11 в xml документ не добавляется пространство имен "xsd".
Для устранения ошибки нужно переопределить функцию ConvertEntityToSpan, добавив в нее код, регистрирующий пространство имен "xsd":

Код:
      
var serializer=new XMLSerializer();
data=serializer.serializeToString(extraData.firstChild);

// **** fix function ****
data = fixDataInIE9(data);  //добавить вызов функции
      
// **** fix function ****
function fixDataInIE9(data) // добавить функцию
{
    if(data.indexOf('<ArrayOfDictionaryEntry>') >= 0)
    {
        data = data.replace('<ArrayOfDictionaryEntry>', '<ArrayOfDictionaryEntry xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema-instance\">');
    }
    return data;
}


Этот скрипт должен регистрироваться на странице после скрипта EntityEditor.js, чтобы сработало переопределение.

http://sharepoint.stackexchange.com/questions/27251/hotfix-for-problem-with-sharepoint-peopleeditor-in-ie-9

Страница 1 из 1 Часовой пояс: UTC + 4 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/