Проблемы с HTML5 shiv и элементами, добавляемыми в тело - PullRequest
2 голосов
/ 17 октября 2011

У меня проблема с получением HTML 5 для работы с элементами, добавленными в тело в IE.Я использую HTML 5, включенный в Modernizr , но это та же проблема с любой другой библиотекой HTML 5.

Он отлично работает для любого элемента, кроме элементов HTML 5, добавленных непосредственно в тело, который выдает то же сообщение об ошибке, как если бы я использовал jQuery без shiv ( неожиданный вызов метода или доступа к свойству ).Это яркий пример в IE (7, 8) с загруженным Modernizr или html5.js:

$(document).ready(function() 
{
    $('body').append('<nav class="test"></nav>');
    $('.test').html("Testing HTML 5");
});

Есть идеи, почему это может произойти?

Ответы [ 2 ]

3 голосов
/ 17 октября 2011

Джо Бартлетт обратился к вашей проблеме в этой статье. Он объясняет проблему и показывает решение (HTML5 innerShiv) для нее.

Решением для IE8 и ниже было бы вставить его скрипт и затем обернуть весь ваш html5 контент в innerShiv(...) перед вставкой его в dom

$("body").append(innerShiv("<nav class=\"test\"></nav>"));
0 голосов
/ 17 октября 2011

Насколько я понимаю, HTML5 shiv добавляет элементы HTML5 в DOM при загрузке страницы, а затем, когда вы добавляете элементы DOM после этого, движок IE не распознает их, потому что их не было при загрузке страницы, когда shiv был применен.

Хотите знать, лучше ли здесь делать еще один document.createElement("nav");?

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