Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.06.2013, 14:55
Аватар для Apollo_440
Аспирант
Отправить личное сообщение для Apollo_440 Посмотреть профиль Найти все сообщения от Apollo_440
 
Регистрация: 06.05.2012
Сообщений: 48

IE8 nextSibling баг
Доброго дня, уважаемые форумчане!

Сегодня заметил один странный баг, именно в IE8.

Решил прогуляться по всем соседним нодам с помощью nextSibling. После получения html всех узлов, по которым прошелся увидел странную вещь: IE8 добавляет "огрызки" от родительских нод. Вот что получилось:

<FORM id=site-search data-url="/en-US/search">
<P onclick="var t = this; while(t = t.nextSibling) alert(t); return false"><INPUT name=q id=q role=search type=text placeholder="Search MDN"> <NOSCRIPT></NOSCRIPT></P><INPUT name=sitesearch type=hidden value=developer.mozilla.org> 
<DIV id=site-search-gg></DIV></FORM><A id=tabzilla href="http://www.mozilla.org/">mozilla</A> 
*!*
<DIV></DIV></HEADER>
*/!*
<!-- top toolbar --><SECTION id=nav-toolbar>
<DIV>
<DIV class=wrap><!-- right floated navigation --><NAV id=tool-menus role=navigation>
<UL id=tools>
<LI class=menu><A class=toggle href="#page-tools">This page</A> 
<UL class=sub-menu id=page-tools>
<LI class=page-print><A title="Print page" onclick="return window.print();" href="#">Print this page</A> </LI>
<LI><A href="/en-US/docs/new?parent=41044">New sub-page</A> </LI>
<LI><A href="/en-US/docs/new?clone=41044">Clone this page</A> </LI></UL></LI>
<LI class=menu><A class=toggle href="#">Languages</A> 
<UL id=translations>
<LI><A href="/en-US/docs/DOM/treeWalker.filter$locales">Add translation</A> </LI></UL></LI></UL></NAV><!-- left crumb navigation --><NAV class=crumbs role=navigation>
<OL>
<LI class=crumb><A href="/en-US/docs/DOM">Document Object Model (DOM)</A> </LI>
<LI class=crumb>treeWalker.filter</LI></OL></NAV></DIV></DIV></SECTION>
<DIV>***</DIV><SECTION id=content>


Не подскажете, как обойти данный баг?

Вторая проблема заключается в том, что HTML5 некоторые теги не закрываются, как например последний.

Последний раз редактировалось Apollo_440, 08.06.2013 в 14:57.
Ответить с цитированием
  #2 (permalink)  
Старый 08.06.2013, 14:59
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Через валидатор свой код прогнал?
Ответить с цитированием
  #3 (permalink)  
Старый 08.06.2013, 15:02
Аватар для Apollo_440
Аспирант
Отправить личное сообщение для Apollo_440 Посмотреть профиль Найти все сообщения от Apollo_440
 
Регистрация: 06.05.2012
Сообщений: 48

В остальных браузерах нормально в т.ч. и в IE9
Ответить с цитированием
  #4 (permalink)  
Старый 08.06.2013, 15:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от danik.js
Через валидатор свой код прогнал?
Я почему спрашиваю. Если у тебя некорректный код, то почему ты ожидаешь от браузера корректное поведение? Проверь для начала свой код. И запости его сюда.
Ответить с цитированием
  #5 (permalink)  
Старый 08.06.2013, 15:06
Аватар для Apollo_440
Аспирант
Отправить личное сообщение для Apollo_440 Посмотреть профиль Найти все сообщения от Apollo_440
 
Регистрация: 06.05.2012
Сообщений: 48

Вот код IE9

<form id="site-search" data-url="/en-US/search">
            <p onclick="var t = this; while(t = t.nextSibling) alert(t); return false">
                <input name="q" id="q" role="search" type="text" placeholder="Search MDN" value="">
                <noscript>
                    &lt;button type="submit"&gt;Search&lt;/button&gt;
                </noscript>
            </p>
            <input name="sitesearch" type="hidden" value="developer.mozilla.org">
            <div id="site-search-gg"></div>
        </form> <a id="tabzilla" href="http://www.mozilla.org/">mozilla</a>

        
        
        <!-- top toolbar -->
        <section id="nav-toolbar">
            <div>
                <div class="wrap">
                    <!-- right floated navigation -->
                    <nav id="tool-menus" role="navigation">
                        <ul id="tools">
                            <li class="menu"> <a class="toggle" href="#page-tools">This page</a>

                                <ul class="sub-menu" id="page-tools">
                                    <li class="page-print"> <a title="Print page" onclick="return window.print();" href="#">Print this page</a>
                                    </li>
                                    <li><a href="/en-US/docs/new?parent=41044">New sub-page</a>
                                    </li>
                                    <li><a href="/en-US/docs/new?clone=41044">Clone this page</a>
                                    </li>
                                </ul>
                            </li>
                            <li class="menu"> <a class="toggle" href="#">Languages</a>

                                <ul id="translations">
                                    <li><a href="/en-US/docs/DOM/treeWalker.filter$locales">Add translation</a>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </nav>
                    <!-- left crumb navigation -->
                    <nav class="crumbs" role="navigation">
                        <ol>
                            <li class="crumb"><a href="/en-US/docs/DOM">Document Object Model (DOM)</a>
                            </li>
                            <li class="crumb">treeWalker.filter</li>
                        </ol>
                    </nav>
                </div>
            </div>
        </section>
        <div>***</div>

Другая проблема, что IE8 не закрывает SECTION тег, а так же не может получить содержимое noscript
Ответить с цитированием
  #6 (permalink)  
Старый 08.06.2013, 15:14
Аватар для Apollo_440
Аспирант
Отправить личное сообщение для Apollo_440 Посмотреть профиль Найти все сообщения от Apollo_440
 
Регистрация: 06.05.2012
Сообщений: 48

с той строкой вы были правы, код оказался битым . Ну а как получить noscript содержимое с IE?
Ответить с цитированием
  #7 (permalink)  
Старый 08.06.2013, 19:39
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Apollo_440
Ну а как получить noscript содержимое с IE?
в ИЕ8 никак, он удаляет содержимое этого тега если включен JavaScript ну или просто его не добавляет.. То есть тег NOSCRIPT в ИЕ8 всегда пуст.

это легко посмотреть так:
<noscript>
                    &lt;button type="submit"&gt;Search&lt;/button&gt;
</noscript>
<script>
    alert(document.getElementsByTagName('noscript')[0].parentNode.innerHTML);
</script>
во всех браузерах, внутри тега noscript что-то есть, а в ИЕ8 он пуст
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 08.06.2013 в 19:42.
Ответить с цитированием
  #8 (permalink)  
Старый 08.06.2013, 22:10
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Сообщение от devote Посмотреть сообщение
во всех браузерах, внутри тега noscript что-то есть, а в ИЕ8 он пуст
Юмористы.)
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 08.06.2013, 22:40
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Aetae
Юмористы.)
что тут юморного?
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #10 (permalink)  
Старый 08.06.2013, 23:19
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

Сообщение от devote Посмотреть сообщение
что тут юморного?
Да просто не перестают поражать маразматические "особенности" ie. Сколько уже этим занимаюсь - а всё равно постоянно что-нибудь новенькое попадается.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IE8 и баг с display:none для td (ячейки таблицы) SegaMega Events/DOM/Window 1 21.09.2012 06:56
JSON.stringify в IE8 sysif Internet Explorer 13 15.02.2012 09:11
Как отключить режим совместимости в IE8? kidar2 Internet Explorer 2 25.06.2011 16:45
<= IE8 memory leak, IE9 - fine AbNormy Internet Explorer 1 20.05.2011 19:47
Баг с jpeg в ie6 JsLoveR Элементы интерфейса 20 28.01.2010 20:57