Ответы пользователя по тегу Internet Explorer
  • Клонирование элементов HTML5 в IE 6-8. Кто придумает как обойти баг?

    @Serator
    ie6:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Sample</title>
    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    </head>
    <body>
    <nav class="demo">
    1
    </nav>
    <div>
    2
    </div>
    <script>
    document.body.innerHTML+=document.getElementsByTagName('nav')[0].outerHTML;
    alert(document.getElementsByTagName('nav')[1]);
    document.body.appendChild(document.getElementsByTagName('div')[0].cloneNode(true));
    alert(document.getElementsByTagName('div')[1]);
    </script>
    </body>
    </html>
    
    Ответ написан
    Комментировать
  • Клонирование элементов HTML5 в IE 6-8. Кто придумает как обойти баг?

    @Serator
    Немного поигрался в IE8 и нашел решение. Для тех, кто не понял, выложу пример за автора (который то ли поленился, то ли...). Разумеется без jQuery :)

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Sample</title>
    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    </head>
    <body>
    <nav class="demo">
    1
    </nav>
    <div>
    2
    </div>
    <script>
    document.querySelector('body').appendChild(document.querySelector('nav').cloneNode(true));
    console.log(document.querySelectorAll('nav')[1]);
    document.querySelector('body').appendChild(document.querySelector('div').cloneNode(true));
    console.log(document.querySelectorAll('div')[1]);
    </script>
    </body>
    </html>
    


    В итоге в консоли видим:

    ЖУРНАЛ: undefined
    ЖУРНАЛ: [object HTMLDivElement]

    Если ie не хочет по хорошему, то мочим его его же оружием:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>Sample</title>
    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    </head>
    <body>
    <nav class="demo">
    1
    </nav>
    <div>
    2
    </div>
    <script>
    document.querySelector('body').innerHTML+=document.querySelector('nav').outerHTML;
    console.log(document.querySelectorAll('nav')[1]);
    document.querySelector('body').appendChild(document.querySelector('div').cloneNode(true));
    console.log(document.querySelectorAll('div')[1]);
    </script>
    </body>
    </html>
    


    В консоли видим:

    ЖУРНАЛ: [object HTMLGenericElement]
    ЖУРНАЛ: [object HTMLDivElement]

    P.S. На будущее выкладывайте готовые примеры без всяких jQuery и прочих хрени.
    Ответ написан
    1 комментарий