Объект не поддерживает свойство или метод addEventListener

Попытка исправить эту ошибку для клиента;

У них есть интрасеть SharePoint 2013, которая имеет как внутренние, так и внешние URL-адреса.

Когда они открывают форму (используя IE11) изнутри, она работает нормально. Однако, если они используют внешний URL-адрес, возникает критическая ошибка с подробностями о том, что «Объект не поддерживает свойство или метод 'addEventListener'».

Раньше я делал быстрый поиск, и единственное, что я нашел, это;

а) с использованием режима совместимости

б) добавление следующего скрипта на главную страницу

<script language="javascript">
    /* IE11 Fix for SP2010 */
    if (typeof(UserAgentInfo) != 'undefined' && !window.addEventListener) 
    {
        UserAgentInfo.strBrowser=1; 
    } 
</script>

or

<script language="javascript">
    /* IE11 Fix for SP2010 */
    if (typeof UserAgentInfo.strBrowser !== 'undefined' && !window.addEventListener) 
    {
        UserAgentInfo.strBrowser=1; 
    } 
</script>

c) Отключение защищенного режима, гарантирующее, что сайт находится в надежных сайтах. Установите флажок «Отключить отладку сценария» (т.е.) и отключить отладку сценария (другое), а также снимите флажок «отображать уведомление о каждой ошибке сценария».

Я пробовал обе итерации скрипта, и ни одна из них не устранила проблему - UserAgentInfo не определен, а! Window.addEventListener оценивается как false. Я также попытался установить все параметры в c) - это тоже не сработало.

Действительно ли режим совместимости - мой единственный вариант? В чем могут быть различия между внутренними и внешними сайтами, где это происходит с одним, а с другим нет?

Заранее спасибо за любую помощь - я действительно в тупике на этом.


person Luke    schedule 29.03.2015    source источник


Ответы (1)


UserAgentInfo - это функция, которую необходимо определить (SharePoint) перед ее использованием. Если вы проверите исходный код страницы, вы должны увидеть такой код:

function UserAgentInfo() {} UserAgentInfo.strBrowser = 3;UserAgentInfo.strBrowserType = 3;UserAgentInfo.intBrowserRmj = 11;

После этого должен быть размещен фрагмент кода. Попробуйте разместить свой код в последнюю очередь перед тегом </body>.

person Heini Samuelsen    schedule 02.06.2016