2010-05-27 3 views
2

Я работаю над сценарием jQuery на http://www.qxl.dk/, и я не могу заставить IE7 (точнее, IE8 в режиме совместимости с IE7) загружать мой контент.IE8 (режим совместимости) не загружает содержимое Ajax

Боковое поле справа под названием «QXL Aktuelt» загружает его HTML содержимого из внешнего файла с помощью Ajax load(), затем запускает пользовательское JQuery события («aktuelt_loaded»), который запускает карусельный скрипт (например, прокрутка Newsticker).

Несколько других разделов контента на одной странице загружаются через Ajax, и они работают отлично, поэтому мне интересно, что происходит не так. Все работает как в Firefox 3.6, так и в IE8, но не в режиме совместимости IE8.

Сценарий, который загружает содержимое Ajax является (рядный на странице):

<div id="qxlaktueltHolder"></div> 
<script type="text/javascript"> 
    $("#qxlaktueltHolder").load("/contents/dk/modul/qxlaktuelt/qxlaktuelt.htm", function() { 
     $("#qxlaktueltHolder").trigger("qxlaktuelt_loaded", []); 
    }); 
</script> 
<script type='text/javascript' src='http://www.qxl.dk/contents/dk/js/jcarousellite_1.0.1.min.js'></script> 
<script type='text/javascript' src='http://www.qxl.dk/contents/dk/js/qxlaktuelt_liveload.js'></script> 

внешний скрипт, который реагирует на события в следующем файле:

http://www.qxl.dk/contents/dk/js/qxlaktuelt_liveload.js

All идеи очень приветствуются.

+0

В одном из тэгов скриптов есть атрибут 'language'. Он [устарел] (http://www.w3.org/TR/html401/interact/scripts.html#h-18.2.1). –

+0

@Marcel: True - но это не должно влиять на нагрузку ajax. –

ответ

3

EDIT:

Похоже, загружается ваш контент. У вас, похоже, проблема с отображением CSS. Использование инструментов разработчика IE, я искал HREF в качестве a, который был загружен правильно в Safari

http://www.123hjemmeside.dk/pages/receive.aspx?target=wl&partnerkey=dkqxl:Hobby_aktuelt_1

и обнаружили, что это было на странице вместе со всеми другим содержанием.

UPDATE:

Проблема с вашим #newsticker элементом. Он и все его элементы li имеют свойства высоты и/или ширины, заданные как 0.

Так что независимо от того, какой код отвечает за определение размера/отображение #newsticker, и его содержимое, по-видимому, является результатом.


Это предположение, но этот сценарий qxlaktuelt_liveload.js загружается после этого:

<script type="text/javascript"> 
    $("#qxlaktueltHolder").load("/contents/dk/modul/qxlaktuelt/qxlaktuelt.htm", function() { 
     $("#qxlaktueltHolder").trigger("qxlaktuelt_loaded", []); 
    }); 
</script> 

Поэтому в зависимости от того, как долго load() берет, сценарий может или не может быть загружен.

Try:

<script type='text/javascript' src='http://www.qxl.dk/contents/dk/js/jcarousellite_1.0.1.min.js'></script> 
<script type='text/javascript' src='http://www.qxl.dk/contents/dk/js/qxlaktuelt_liveload.js'></script> 
<script type="text/javascript"> 
    $("#qxlaktueltHolder").load("/contents/dk/modul/qxlaktuelt/qxlaktuelt.htm", function() { 
     $("#qxlaktueltHolder").trigger("qxlaktuelt_loaded", []); 
    }); 
</script> 
+0

На самом деле это не должно быть проблемой - по крайней мере, это не в IE8 или Firefox (я тестировал с задержками и т. Д.и модель события, которую я использую, работает независимо от того, что загружено первым, скрипта или содержимого Ajax). Но, с другой стороны, режим совместимости имеет тенденцию составлять свои собственные правила по мере продвижения, поэтому я попробую. Спасибо за ответ –

+0

Не работает .. :( –

+0

@Jens Roland - Да, 'load()' будучи асинхронным, я вроде понял, что 'qxlaktuelt_liveload.js' может иметь возможность загрузить до того, как ответ вернется. Хотя, если ответ был достаточно быстрым, возникла бы проблема, поэтому лучше загружать файлы сценариев в правильном порядке, чтобы вы не ссылались на код в файле, который еще не загружен. – user113716

-3

Удалить все консоли в коде JavaScript. По какой-то причине IE нарушает это.