Többszörös modulspecifikus window.onload és window.onresize esemény használata.

HF leon képe

Mi van akkor, ha több window.onload, vagy window.onresize eseményre lenne szükségem eltérő modulokban. Amelyek egy oldal betöltésekor változóan aktívak.

Gondolok itt az alábbi esetre:

first.js :
...
window.onload= function fone{}

second.js:
...
window.onload=function ftwo{}

Ekkor csak az egyik működik.
Van arra lehetőség, hogy mind a kettő lefusson az esemény bekövetkeztekor?
Úgy, hogy előre nem lehet tudni, hogy csak az első, vagy csak a második, netán mindegyik fájl betöltésre kerül.

Drupal verzió: 
HF leon képe

Az alábbi megoldás, úgy tűnik jól működik. A teljes tesztelés, még nem volt meg, de a leírások alapján nem lesz vele gond.

  1. if (window.addEventListener) // W3C standard
  2. {
  3. window.addEventListener('load', loadfunction, false);
  4. }
  5. else if (window.attachEvent) // Microsoft
  6. {
  7. window.attachEvent('onload', loadfunction);
  8. }

A "loadfunction" annak a változónak a neve, amelybe a betöltendő függvényünket tettük.

  1. var loadfunction=function loader(){
  2. ...
  3. }

Ezzel a megoldással akárhány függvény hozzáfűzhető a window.onload folyamathoz. A window.onresize ehhez hasonlóan működik. Egyes régebbi böngészőkben ez kevésbé, vagy egyáltalán nem támogatott a window.onload megoldással szemben, de ezek a böngészők többnyire, még a win98 idejéből származnak, így közelít a nullához a használati arányuk.

1
0