Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Почему JQuery 1.9 в IE8 спотыкается на такой конструкции (https://javascript.ru/forum/jquery/35516-pochemu-jquery-1-9-v-ie8-spotykaetsya-na-takojj-konstrukcii.html)

Shitbox2 13.02.2013 15:15

Почему JQuery 1.9 в IE8 спотыкается на такой конструкции
 
var tag = $('.xxx').remove()[0].outerHTML

Старые версии jQuery срабатывают нормально, в новых браузерах и новая версия не глючит

Deff 13.02.2013 15:20

var tag = $('.xxx').remove().get(0).outerHTML

Shitbox2 13.02.2013 15:36

Та же фигня. [0] просто короче для записи

danik.js 13.02.2013 15:41

Цитата:

Сообщение от Shitbox2
в новых браузерах и новая версия не глючит

Так что тогда не устраивает?

Deff 13.02.2013 15:47

<script type="text/javascript" src="http://yandex.st/jquery/1.9.1/jquery.min.js"></script>
<div class="xxx">asfasf</div>
<script type="text/javascript">
//Костыль
var ReturnOuterHTML = (function( b ){
    return function(obj) {
        b.innerHTML="";
        b.appendChild(obj.get(0));
        return b.innerHTML;
    }
})( document.createElement( 'b' ) );

alert( ReturnOuterHTML($('.xxx').remove()));
</script>

danik.js 13.02.2013 15:52

Shitbox2, outerHTML в Firefox появился только с 11-й версии.
Схожий вопрос.

Shitbox2 13.02.2013 15:57

Так дело-то в том, что jQuery 1.8x прекрасно обрабатывал этот код во всех браузерах, а 1.9 не жалует IE8. Это теперь придется старую версию использовать?
На конструкциях типа var tag = $('.xxx').remove()[0].outerHTML движок строится, без него ничего работать не будет...

danik.js 13.02.2013 16:04

То-есть вас не смущает что код не работает в Firefox < 11, но вы недовольны что он не работает в IE8 ?

Этот код должен исправить проблему. Плюс используется решение в стиле jQuery.

<script src="http://yandex.st/jquery/1.9.1/jquery.min.js"></script>
<div class="xxx">asfasf</div>
<script>

$.fn.ohtml = function(){
    return this[0].outerHTML || new XMLSerializer().serializeToString(this[0]);
}
 
alert($('.xxx').remove().ohtml());
</script>

Shitbox2 13.02.2013 16:26

Не смущает) Фаерфоксом пользуются неадекватные люди или программисты, а Эксплорером — те, кто не разбирается в компьютерах, они-то не должны страдать

Решение да, хорошее

danik.js 13.02.2013 17:14

Цитата:

Сообщение от Shitbox2
Фаерфоксом пользуются неадекватные люди или программисты

Тем что вы сейчас сказали, вы ставите под сомнение свою адекватность.

Цитата:

Сообщение от Shitbox2
На конструкциях типа var tag = $('.xxx').remove()[0].outerHTML движок строится

Его строитель видимо чего-то курнул...


Часовой пояс GMT +3, время: 08:27.