IE не применяет CSS-стили к динамически добавленному div - PullRequest
2 голосов
/ 28 февраля 2011

У меня странная проблема на IE8. Мое приложение получает div через ajax и добавляет его в HTML.

$('#formPromocao').submit(function () {
        persistPageIndex();
        var postData = $(this).serialize();
        $.post($(this).attr('action'), postData, function (data) {
            $('#lista').empty();
            $('#lista').append(data);
            prepareNewForm();
        });
        return false;
    });

Это прекрасно работает во всех браузерах, кроме IE8, добавленный HTML не стилизован браузером, и я не могу понять, почему.

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

EDIT:

Я обнаружил проблему: люди HTML использовали HTML5 для приложения, а в IE8 есть скрипт, который обрабатывает HTML5: http://html5shiv.googlecode.com/

Мне нужно найти способ, чтобы этот скрипт снова запустился при обновлении HTML. Могу ли я безопасно сделать это?

Ответы [ 3 ]

2 голосов
/ 02 марта 2011

Используйте функцию shiv перед добавлением в документ:

html = innerShiv(html, false);
$('something').append(html);
1 голос
/ 28 февраля 2011

Вот как мне удалось добавить HTML5 в IE.

Я нашел этот удивительный скрипт: http://jdbartlett.github.com/innershiv/#download, а затем все, что мне нужно было, это добавить результат innerShiv в HTML:

$('#formPromocao').submit(function () {
        persistPageIndex();
        var postData = $(this).serialize();
        $.post($(this).attr('action'), postData, function (data) {
            $('#lista').empty();
            $('#lista').append(innerShiv(data));
            prepareNewForm();
        });
        return false;
    });
1 голос
/ 28 февраля 2011

Обычно это происходит из-за того, что вы добавляете недопустимый HTML, или на странице уже есть недопустимый HTML.

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