Перевод IE9 в пограничный режим без X-UA-совместимого (d3.js )

#javascript #internet-explorer #d3.js #cognos #compatibility-mode

#javascript #internet-explorer #d3.js #cognos #режим совместимости

Вопрос:

Я разрабатываю страницу визуализации данных для интрасети с использованием d3.js . Страница должна отображаться в Internet Explorer, что вызывает проблемы, поскольку все страницы интрасети отображаются в режиме quirks. Это приводит к тому, что IE выдает ошибку при загрузке d3: SCRIPT5009: CSSStyleDeclaration is undefined , которая затем предотвращает загрузку остальной части d3.

Страница работает так, как задумано, при отображении другими современными браузерами или IE9 в стандартном режиме, поэтому я считаю, что проблема в режиме quirks.

Другие ограничения и вещи, которые я пробовал, которые не работают:

  • Страница обслуживается системой шаблонов (IBM Cognos) У меня нет контроля над. <meta http-equiv="X-UA-Compatible" content="IE=edge"> Поэтому настройка не является опцией, поскольку я не могу изменить заголовок.
  • Установка эквивалентного тега в заголовке HTTP также невозможна.
  • Если я добавлю мета-тег к <body> единственной части страницы, над которой у меня есть какой-либо контроль, IE проигнорирует его.
  • IE F12 tools утверждает, что он находится в режиме «причуды документа», хотя сам браузер находится в режиме совместимости с IE9. Изменение режима документа вручную приводит к тому, что сайт интрасети перезагружает страницу и переходит обратно на родительскую страницу. Я понятия не имею, почему.
  • Снятие флажка «Отображать сайты интрасети в режиме совместимости» в настройках представления совместимости ничего не дает.

На данный момент я могу придумать два способа решить эту проблему: либо заставить IE отображать в стандартном режиме, либо как-то переписать d3.js чтобы избежать использования CSSStyleDeclaration, что в первую очередь приводит к сбою. Я понятия не имею, как поступить с любым из них.

Комментарии:

1. На данный момент ваша лучшая надежда может заключаться в том, чтобы взять кувалду, пойти в офис администратора и пригрозить оторвать им голову (или повредить их оборудование), пока они не войдут в это тысячелетие и не добавят a <!DOCTYPE> на свои веб-страницы.

2. @NiettheDarkAbsol Я всего лишь скромный консультант, так что это может вызвать неодобрение.

3. Хорошо, может быть, не так буквально, но даже будучи консультантом, вы должны быть в состоянии объяснить им, что «то, о чем вы просите, буквально невозможно сделать, если вы это не исправите».

4. Я изучаю это, но поскольку проблема связана с системой интрасети, она может быть не полностью под их контролем. И я могу понять, не хотят ли они вносить изменения на сайте, поскольку устаревшие материалы имеют тенденцию ломаться.

5. Но если бы они были в курсе последних событий и не позволяли вещам становиться устаревшими, они могли бы избежать этого 😉