MSIE: jQuery добавляет () / HTML () не работа, обратился к getElementById () .innerHTML

Если у Вас есть взломанный iPhone, можно установить набор инструментальных средств iphone-gcc на iPhone через Cydia и тот способ, которым Вы можете просто compilie приложения на iPhone. Приложения, которые разрабатываются этот путь, могут все еще быть отправлены App Store.

И хотя г-н Valdez сказал, это - серая область (который это), джейлбрекинг является невероятно легким и в значительной степени безрисковым. Да, это освобождает Вашу гарантию, но можно просто сделать восстановление, и они никогда не будут знать.

6
задан Chauncey 17 July 2009 в 21:03
поделиться

2 ответа

Я разгадал загадку! вот рабочий пример моей проблемы. Уловка заключалась в том, чтобы вызвать другой AJAX после первого успеха, это каким-то образом преодолеет проблемы с innerHTML. Спасибо, ребята, что направили меня в правильное русло.

Надеюсь, это поможет некоторым людям, потому что пока я еще не видел рабочего решения. Я также свяжусь с jQuery для этого: P

$.ajax({
url:'modifyarticle.php',
type:'POST',
data:{
 id:this.id,
 article:'something',
 mode:'single',
 action:'delete'},
cache:false,
success:function(msg) {
 alert(msg);$.ajax({
  url:'getall.php',
  type:'GET',
  cache: false, 
  success: function(data) {
   $('#output').html(data);
  }
 });
}});

salut

2
ответ дан 17 December 2019 в 18:19
поделиться

Полагаю, вы должны были там быть. Вот несколько возможных моментов сбоя:

  • jQuery.clean: функция, которая создает фрагмент, добавляемый в DOM.

    Это может быть возможно, если тип документа плохой, или если ответ HTML некорректно способ, который приводит к сбою чистой функции, не оставляя ничего для вставки в DOM.

  • jQuery.fn.append: Добавление обработанного фрагмента ответа в DOM.

    Допустим, поскольку jQuery добавляет контент в DOM с помощью appendChild, а не innerHTML, ошибка приводит к тому, что IE не знает, что DOM изменился, и не отображает обозначенные изменения. Затем это можно было бы обойти, когда вы используете innerHTML.

    Из вашего вопроса не ясно, подтвердили ли вы, что введенный HTML-код действительно там. Это можно проверить примерно так:

     $$. Empty (). Append (data);
    предупреждение ($$. parent () [0] .innerHTML);
    $$. show ();
    
  • jQuery.fn.show (): отображение результатов.

    Из вашего вопроса неясно, вызван ли окончательный сбой контент не помещается в DOM или просто не отображается? Если у контейнера есть отступ и фон, вы его видите?

    Функция show более сложна, чем просто добавление .style.display = 'block' в элемент. Он не будет отображать элемент, если считает, что он скрыт, что иногда может IE есть странные идеи по поводу. Заменяет ли show () настройку изменения отображения вручную что-нибудь?

Ясно, что существует разница в том, как IE обрабатывает страницу stage / dev и рабочий сайт. Моими первыми шагами было бы попытаться обнаружить разницу между ними. Заголовки HTTP, кодирование, типы документов, дополнительные сценарии, дополнительный CSS, даже пробелы ... Некоторые, казалось бы, незначительные различия являются причиной этой ошибки.

В любом случае вам следует подготовить сокращенный тестовый пример, содержащий только самое необходимое, чтобы воспроизвести эту ошибку. Даже если вы не нашли подходящего для вас лекарства, тестовый пример следует отправить вместе с отчетом об ошибке в jQuery .

1
ответ дан 17 December 2019 в 18:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: