wZine

layeri un to satura mainīšana
29 Apr 1999 by Laacz

Angliski šamais topicks saucās Layer Writing. Tas nozīmē - iekš iepriekš nodefinēta layera (mūsu gadījumā - <div>...</div>). Mēs visi ļoti labi zinām (tu taču to jau zināji), ka Explorerī to var darīt vienā mierā - katram layerim (divam) ir propertiji innerHTML un innerText. Tā kā tas ir elementāri. Bt kā to iekš Netskapja darīt?? To nu es arī apstāstīšu. Nu labi, apstāstīšu arī, kā iekš Explorera..

Internet Explorer 4.0
Ecplorerī tu vari tikt klāt HTML kodam iekš div taga (kaut arī faktiski, jebkuram tagam ir šāds propertijs), uzrakstot:

 document.all.divID.innerHTML = "taffējais texc"
 // vai arī
 document.all["divID"].innerHTML = "taffējais texc"

Netscape Nafigator 4.0
Tākā Netskeipa izpratnē katrs layeris ir pats par sevi dokuments, tam ir daudzas no tām īpašībām un metodēm, kuras piemīt objetam Document. Un divas no šādām metodēm ir document.writeln() un document.write().

Un galu galā - neviens jau neatminās, ka, pirms dokumentā kaut ko raksti, tas jāatver ar document.open() un pēc ierakstīšanas - document.close(). Tas tāds sīkums, bet nepieciešams.

Un tagad jums ir iespēja obzervēt sekojošo listingu un biš provēt tajā iebraukt:

 document.layers["divID"].document.open()
 document.layers["divID"].document.write("taffējais texc")
 document.layers["divID"].document.close()

Un tagadiņās - abo kopā
Nu es domāju, ka pie šamā zurča gabala paskaidrojumus sevišķus nevajadzēs. Ja nu vienīgi tas, nafig tur tusē tamais nestref. Nu tā ir ar to Netskeipu. Viss nav tik vienkārši. Ja mums vajadsīgaiz layeris ir iekš kāda cica layera jau, tad nu mums uz to mūsējo miskasti būs jānorāda viss paths. No sērijas, apmēram - document.layers["vecteevs"].document.layers["teetis"].document.layers["deelinjsh"].

 ns4 = (document.layers)?true:false
 ie4 = (document.all)?true:false

 function layerWrite(id, netsref, text) {
   if (ns4) {
     var lyr = (nestref)?eval('document.'+nestref+'.document.'+id+'.document'):document.layers[id].document
     lyr.open()
     lyr.write(text)
     lyr.close()
   } else
     if (ie4)
       document.all[id].innerHTML = text
 }


Nu un pēc tam fiss ir elementāri (starp cicu - tu vari rakstīt iekšā tur jebkuru HTMLu un tas arī normāli tiks interpretēts).

 layerWrite("mans_smukais_layeris", null, "mans \"texc\" 'šeku'")

un te kāds piemēriņš