#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. Но если бы они были в курсе последних событий и не позволяли вещам становиться устаревшими, они могли бы избежать этого 😉