JQuery Imagebox vs. Internet Explorer

Tünet

IE6 és IE7 alatt olyan Javascript hibát dobott az imagebox galéria generáló Jquery könyvtár.

Probléma

Az volt a probléma, hogy a Drupal skin egyik befoglaló div-jének id-ja container volt. Ez IE alatt ütközést produkált az imagebox –al.
Átírtam az elem ID-ját másra és egyből jó lett.

Probléma beazonosításának menete

Először létrehoztam egy teszt HTML oldalt. Kimásoltam az eredeti oldal fejlécéből jquery.js és interface.js hivatkozást, az imagebox inicializáló rész és a képeket tartalmazó részt (test-virag.html). A HTML tökéletesen működött IE7 alatt.

Ezután fogtam az eredeti oldal (pl. http://sum.emesz.hu/en/cut_greens ) forráskódját és elkezdtem lebontani. Szépen sorban kivettem az egyes blokkokat, fejléc, lábléc diveket, CSS hivatkozásokat. Minden egyes lépésnél megnéztem, hogy a HTML hibát dob-e IE alatt. Egészen odáig eljutottam, hogy nem maradt más csak a wrapper és container div-ek és a képek meg a Javascript hivatkozások). És lám lám amikor kivettem a container div-et egyből elkezdett működni. Először nem tudtam, hogy pontosan mi a baj, ezért a divből először a class –t távolítottam el, majd miután így sem ment a div id-ját írtam át. Persze ekkor már volt egy sejtésem, hogy a container id-nek van köze az imagebox JS könyvtárhoz. Amikor átírtam a div id-ját containerbox-ra, tökéletesen működött a Javascript. (Container ID-t tartalmazó HTML)

Megoldás

A container id-jú div id paraméterét kellett átnevezni, pl. containerbox –ra, mivel összeakadt az Imagebox belső elnevezéseivel.

Tanulságos!

Amit én tanultam belőle

  1. SOHA NE ADD FEL!
  2. Ha végképp nem tudsz rájönni mi a baj (se a Javascript debugger, se a Webdeveloper toolbar nem segít), akkorReverse engineering módszert kell használni. Elkezdem visszabontani az alapokig a rendszert és minden lépésnél ellenőrzöm a működését.

You can always do a cheap

You can always do a cheap essay on this topic.

A webhelyet a Drupal - egy nyílt tartalomkezelő rendszer - működteti