Kada se bavite programiranjem, trebalo bi da uvek imate na umu tzv. „defanzivno programiranje“, a poลพeljno bi bilo i da prihvatite ovu filozofiju kada piลกete JavaScript skriptove. U skladu sa ovom filozofijom, nikada se ne treba oslanjati na sistem, u tom smislu da ฤe uraditi stvari za vas. Umesto toga, npr. podesite potrebne varijable svojeruฤno, i to pre ili nakon deลกavanja odreฤenog dogaฤaja. Da bi ova priฤa bila jasnija, pogledaฤemo i primer. U narednim redovima imamo funkciju onPageComplete(), koja se koristi za kreiranje dinamiฤkog ลกablona za ลกtampanje:
function onPageComplete() {
if (event.contentOverflow) {
document.all("layoutrect" + poslStrana).onlayoutcomplete
= null;newHTML = "<IE:DEVICERECT ID=’devicerect"
+ (poslStrana + 1)
+"’ MEDIA=’print’ CLASS=’masterstyle’>";
newHTML += "<IE:LAYOUTRECT ID=’layoutrect"
+ (poslStrana + 1)
+ "’ ONLAYOUTCOMPLETE
=’onPageComplete()’NEXTRECT=’layoutrect"
+ (poslStrana + 2)
+ "’ CLASS=’contentstyle’/>";
newHTML += "</IE:DEVICERECT>";
devicecontainer.insertAdjacentHTML
("beforeEnd", newHTML);
poslStrana++;
}
}
Ubacite ovaj kod u HTML stranicu i isprobajte je u browser-u. Funkcioniลกe upravo kako smo ลพeleli. Sada ฤemo za promenu izostaviti prvu liniju unutar IF uslova, i dobiฤemo novu funkciju onPageComplete():
function onPageComplete() {
if (event.contentOverflow) {
{ovde je bila linija koju smo izbacili}newHTML = "<IE:DEVICERECT ID=’devicerect"
+ (poslStrana + 1)
+ "’ MEDIA=’print’ CLASS=’masterstyle’>";
newHTML += "<IE:LAYOUTRECT ID=’layoutrect"
+ (poslStrana + 1)
+ "’ ONLAYOUTCOMPLETE
=’onPageComplete()’ NEXTRECT=’layoutrect"
+(poslStrana + 2)
+ "’ CLASS=’contentstyle’/>";
newHTML += "</IE:DEVICERECT>";
devicecontainer.insertAdjacentHTML
("beforeEnd", newHTML);
poslStrana++;
}
}
Ubacite kod u web stranicu i isprobajte je. Ono ลกto ฤete na kraju dobiti je – prazna stranica. Razlog je deลกavanje dodatnog dogaฤaja onlayoutcomplete prethodne stranice, koju smo veฤ odลกtampali. Prvom linijom funkcije onPageComplete() podeลกavali smo vrednost null pre samog ลกtampanja sledeฤe stranice:
document.all("layoutrect" + poslStrana).onlayoutcomplete
= null;
Pratite Krstaricu na www.krstarica.com