Как я могу обойти IE7, будучи неспособным стилизовать динамические элементы, созданные с помощью API DOM - PullRequest
0 голосов
/ 10 марта 2012

Кто-нибудь знает, как я могу стилизовать динамические элементы, созданные с помощью метода DOM createElement в IE7 с помощью CSS.

Как некоторые из вас могут знать или не знать, IE7, похоже, отказывается от элементов стиля, которыесоздаются с использованием API DOM, но довольно удачно их стилизируют с использованием innerHTML.

Кажется, это ошибка в IE7, поскольку IE8 не имеет проблем с оформлением этих динамических элементов.

Вкл.GitHub Я разветвил этот репозиторий: https://github.com/ChiperSoft/Kalendae и хотел преобразовать его в поддержку IE7 (говорится, что он поддерживает только IE8, но сначала я заметил некоторые базовые вещи, которые можно исправить, чтобы заставить его работать в IE7, а затем понял, что основнойПоддерживаемая проблема IE7 снова возникла из-за этой ошибки, когда IE7 задыхался от динамических элементов).

(ради эксперимента ...) Я попытался загрузить CSS после завершения сценария (просто как способ проверитьчтобы увидеть, будет ли IE7 отображать стили для элементов, созданных DOM), но это не сработало.

И невозможно создать эти динамические элементы с помощью innerHTMLиз-за требований сценария и динамической природы элементов (это сценарий выбора даты).

Поэтому в конечном итоге мне нужно попытаться решить, как исправить эту ошибку в IE7.

Есть идеи?

С уважением, Марк

Ответы [ 3 ]

1 голос
/ 10 марта 2012

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

EDIT

Да ... Я был прав.Вам нужно добавить новый элемент в DIV.См. Этот вопрос / ответ javascript createElement (), проблема стиля

0 голосов
/ 06 февраля 2013

Интересный трюк для обработки динамических или загруженных скрытых элементов

IE 7 будет нормально работать на первой странице li если вы используете селектор jQuery, как это:

$('.active').children('.image');

HTML:

<li class=active">
<li class="hidden">
<li class="hidden">
<li class="hidden">
<li class="hidden">

Однако IE 7 перестает видеть вторые дочерние элементы LI

<li class=hidden">
<li class="active">
<li class="hidden">
<li class="hidden">
<li class="hidden">

так что теперь это бесполезно:

$('.active').children('.image');  //log returns null in IE7

Я обнаружил, что если вы определите селектор, как этот, IE7 начнет функционировать как "НОРМАЛЬНЫЙ" браузер

$('.active .image');
0 голосов
/ 10 марта 2012

После добавления элемента попробуйте принудительно перерисовать страницу следующим трюком:

document.body.className = document.body.className;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...