IE 7/8 не запущен .innerhtml = данные

#javascript #jquery #html #internet-explorer

#javascript #jquery #HTML #internet-explorer

Вопрос:

Приведенный ниже код не выполняется в IE7 / 8. Я исследовал онлайн, .innerhtml не будет работать в браузере IE 7/8. Мне действительно нужен этот код для запуска в этих браузерах.

 $(document).ready(function(){
  var hashes = window.location.href.slice(window.location.href.indexOf('?')   1);
   $.ajax({
      type: "GET",
      url: "/get_header",
      data: hashes,
      success: function(data) {
        if (!$.support.leadingWhitespace) {
          alert('j');
          document.getElementById('logo-bar').innerHTML = data;
        } else {
          $('#logo-bar').html(data);
        }
      },
      error: function(data) {}
    });
  

Комментарии:

1. ДА. Я хочу, чтобы мой код отображал баннер с логотипом (#logi-bar) при загрузке страницы. баннер с логотипом отлично работает в ff и Chrome, но в IE 7 и 8 он не загружается. Веб-сайт находится styletag.com в IE всплывающее окно не отображается.

2. при создании console.log (data) отображается код всплывающего баннера, но он не отображает всплывающий код в IE 7/8

Ответ №1:

Вы используете jQuery для запроса AJAX, поэтому вы также можете использовать его и для обновления DOM. Если вас беспокоит начальный пробел в тексте ответа, вы можете использовать $.trim() для его удаления:

 success: function(data) {
    $('#logo-bar').html($.trim(data));
},
  

Комментарии:

1. Я не уверен, почему за это проголосовали — поскольку нет причин, по которым это решило бы проблему OP — приведенный здесь код не будет работать там, где не будет OP document.getElementById(..).innerHTML = .

2. @BenjaminGruenbaum Код OPs может не работать, поскольку IE все еще имеет проблемы с innerHTML. Смотрите здесь для получения дополнительной информации: quirksmode.org/dom/w3c_html.html . jQuery содержит обходные пути для решения этих проблем.

3. @RoryMcCrossan: Спасибо. Приведенный выше код используется для запуска всплывающего баннера для сайта. Но $(‘#logo-bar’).html(data); работает в ff и Chrome, в IE он скрывает основную панель навигации и всплывающее окно не отображается. Поэтому используется (!$.support.leadingWhitespace) для запуска кода только для IE

4. Каково содержимое data ? Это должно работать и в IE.

5. содержимое — это страница, относящаяся к всплывающему изображению. Я говорю об этом сайте styletag.com