Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.02.2013, 15:15
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

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

Старые версии jQuery срабатывают нормально, в новых браузерах и новая версия не глючит
Ответить с цитированием
  #2 (permalink)  
Старый 13.02.2013, 15:20
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

var tag = $('.xxx').remove().get(0).outerHTML
Ответить с цитированием
  #3 (permalink)  
Старый 13.02.2013, 15:36
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Та же фигня. [0] просто короче для записи
Ответить с цитированием
  #4 (permalink)  
Старый 13.02.2013, 15:41
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Shitbox2
в новых браузерах и новая версия не глючит
Так что тогда не устраивает?
Ответить с цитированием
  #5 (permalink)  
Старый 13.02.2013, 15:47
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<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>
Ответить с цитированием
  #6 (permalink)  
Старый 13.02.2013, 15:52
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Shitbox2, outerHTML в Firefox появился только с 11-й версии.
Схожий вопрос.
Ответить с цитированием
  #7 (permalink)  
Старый 13.02.2013, 15:57
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Так дело-то в том, что jQuery 1.8x прекрасно обрабатывал этот код во всех браузерах, а 1.9 не жалует IE8. Это теперь придется старую версию использовать?
На конструкциях типа var tag = $('.xxx').remove()[0].outerHTML движок строится, без него ничего работать не будет...
Ответить с цитированием
  #8 (permalink)  
Старый 13.02.2013, 16:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

То-есть вас не смущает что код не работает в 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>
Ответить с цитированием
  #9 (permalink)  
Старый 13.02.2013, 16:26
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

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

Решение да, хорошее
Ответить с цитированием
  #10 (permalink)  
Старый 13.02.2013, 17:14
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

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

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



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает на jQuery 1.4.4? pro10026 jQuery 13 06.03.2014 10:22
Почему jQuery является одновременно функцией и объектом? FINoM jQuery 3 14.02.2011 02:44
Почему jQuery плагины? a.vovchuk jQuery 9 04.01.2011 19:03
Jquery doctype + ie8 alizid Internet Explorer 5 21.08.2010 13:39
jQuery не работает ни в IE8 ни в Firefox Jon Events/DOM/Window 7 09.01.2010 23:39