Avatar billede hermanr Nybegynder
05. juli 2003 - 15:59 Der er 35 kommentarer og
1 løsning

At reinitialisere data for en gif fil

http://aovnet.dk har jeg en javascript funktion, hvor brugerne kan åbne og lukke en html blok. I linken, som gør dette er der en lille gif fil, en pil, som ved udskiftning vender retning, alt efter om blokken er lukket eller åbnet.

Hvis brugerne åbner links til andre sider adresseret i html blokken, og lukker disse igen, så kan det hænde at browseren mister information om pil gif filen, filens indhold, filens størrelse mv. Når den adresseres havner den i en status Uninitialized. Problemet afhænger tilsyneladende af, hvor meget jeg har i siden, og af serverens svartid. Jeg kan ikke finde ud af at løse det. Det nærmeste jeg har fundet på nettet som ligner er, hvor man loader en XML fil http://www.sitepoint.com/article/989.

aovnet.dk er opbygget i frames, og jeg bruger funktionen i såvel menuen og i indholdet. Da der er lidt forskel på blokkene bruger jeg class=L1 i menuerne og class=L2 i indholdet. Når problemet opstår i indholdet mister jeg pilen, og informationen mistes typisk samtidigt for begge ”pil-retninger”. Ved at åbne/lukke nogle gange, så initialiserer det tilsyneladende sig selv. Det fejler aldrig i menuen, og har jeg åbnet/lukket i menuen, så virker indholdet igen. Hvis man tager en status af den fejlende ”blanke” gif, ved at pege-højreklikke med musen, så ser man, at kun URL’en kendes.

Jeg har forsøgt at indkredse problemet i javascript, men jeg er ikke særlig ferm til dette. Her er koden:

//----------------------------
// This file creates a number of variables describing the browser.

var bVer4 = ( parseInt(navigator.appVersion) >= 4 )
var bDoesDHTML = ( (navigator.userAgent.indexOf("MSIE") >= 0) && bVer4)

//-----------------------------------------------
function stat(txt) {window.status = txt; setTimeout("erase()",3000);}
function erase() { window.status="";}

//-----------------------------------------------
// If browser supports this type of DHTML, hide menu items, do mouseover
// style effects and images, and make the expanding menus.
if(bDoesDHTML){
  sStyle=(".off{display:none} .on{display:block}")
  document.write("<STYLE>"+sStyle+"</STYLE>");
  window.onload=Function("MakeExpanding()");
}

//Hente på forhånd - men hvordan gøres det
//på en bedre måde
openimage=new Image();
closedimage=new Image();
openimage.src="img/open.gif";
closedimage.src="img/closed.gif";


function MakeExpanding(){
  //--------------------------------------
  // Add click handler to all items of class L1 or L2

  var oDA=document.all;
  for (i in oDA){
    if (oDA[i].className=="L1"){
      oDA[i].onclick=Function("ToggleMenu(this)");
      oDA[i].href="java script:void(0);";
      oDA[i].title="Åben / Luk";
    }
  }
  for (i in oDA){
    if (oDA[i].className=="L2"){
      oDA[i].onclick=Function("ToggleMenu2(this)");
      oDA[i].href="java script:void(0);";
      oDA[i].title="Åben / Luk";
    }
  }
}

function ToggleMenu(oHead){
  var oAll=document.all;
  iIndex=oHead.sourceIndex;
  if (oAll(iIndex+3).className=="off"){
    oAll(iIndex+1).src="img/open.gif";
    oAll(iIndex+3).className="on";
  }
  else {
    oAll(iIndex+1).src="img/closed.gif";
    oAll(iIndex+3).className="off";
  }
}

function ToggleMenu2(oHead){
  var oAll=document.all;
  iIndex=oHead.sourceIndex;
  if (oAll(iIndex+2).className=="off"){
    oAll(iIndex+1).src="img/open.gif";
    oAll(iIndex+2).className="on";
  if (oAll(iIndex+1).readyState!="complete"){
  window.status = oAll(iIndex+1).readyState;
  setTimeout("erase()",3000);
  }
//    oAll(iIndex+1).onreadystatechange=verifyGiffen(oAll(iIndex+1));
  }
  else {
    oAll(iIndex+1).src="img/closed.gif";
    oAll(iIndex+2).className="off";
  if (oAll(iIndex+1).readyState!="complete"){
  window.status = oAll(iIndex+1).readyState;
  setTimeout("erase()",3000);
  }
//    (oAll(iIndex+1)).onreadystatechange = verifyGiffen(oAll(iIndex+1));
//  alert("Pilens readyState "+ oAll(iIndex+1).readyState);
  }
}

function verifyGiffen(Giffen) {
//  alert("Pilens readyState "+ Giffen.readyState);
  if ((Giffen).readyState!="complete"){
    return false;
  }
}
Avatar billede roenving Novice
05. juli 2003 - 16:03 #1
Prøv lige at gøre det på denne måde:

    oAll(iIndex+1).src=closedimage.src;
Avatar billede hermanr Nybegynder
05. juli 2003 - 16:15 #2
Jeg havde prøvet, men på din opfordring prøvede jeg igen; men det giver samme problem - ellers mange tak for tippet
Avatar billede roenving Novice
05. juli 2003 - 16:22 #3
Ja, jeg havde jo svært ved at se sidens indhold -- min popupstopper udgjorde et effektivt værn mod hade-effekten: Uvarslede popups !-)
Avatar billede hermanr Nybegynder
05. juli 2003 - 16:32 #4
Ja, en stor del af linkene i indholdssiderne åbnes med popup når man klikker men ikke alle. Problemet er ens, om jeg har en almindelig link, eller om det er link til en popup. Og det har tidliger kørt fint. Efter jeg har lagt mere indhold ind på siderne, så begyndte ustabiliteten.

Siderne kan vises uden fuld skærm via adressen http://aovnet.dk/html og med ovenviste kode i javascriptet, så vises i statuslinien filens readyState når den ikke er Complete.
Avatar billede roenving Novice
05. juli 2003 - 16:38 #5
Det lykkedes mig ikke at få den frem (både fejlen og readyState-status'en), hvad skal der til ?-)
Avatar billede hermanr Nybegynder
05. juli 2003 - 16:44 #6
Hvis du fx via menuen vælger Internet + og edb sikkerhed og i indholdssiden åbner Andre gode links og der vælger den sidste link Distancearbejdspladsen så er der ofte problmer med pilen bagefter. - I øvrigt så er linken Distancearbejdspladsen ikke en popup, så det skulle være letter, når du har en popup-stopper.
Avatar billede roenving Novice
05. juli 2003 - 16:59 #7
Nåeh, hvis jeg mener det er nødvendigt koster det jo kun et klik at slå den fra, men jeg har den jo fordi jeg zq ik' ka' li' at bli'e overrasket eller for den sags skyld få smidt et fuldskærmsvindue i hovedet ...

Men bortset fra det lykkedes det mig ikke få problemer de her 10-15 gange jeg forsøgte at komme igennem -- een gang kunne jeg se, at der gik et øjeblik, og nogle flere gange skete det ikke på blinket, men problemet fik jeg ikke, så jeg kan ikke af den vej få nogle hints til problemet ...

-- for lige at tage den med popup'erne igen:
Hvis nogen smider et fuldskærmsvindue i hovedet på mig, lukker jeg vinduet uden at se, hvad der er, men jeg er selvfølgelig også klar over hvad der sker, hvilket man nok ikke kan sige om de fleste surfere ,-)

-- og jeg er jo nok ikke den eneste, som selv vil bestemme over det jeg kigger på ...
;O)
Avatar billede hermanr Nybegynder
05. juli 2003 - 17:17 #8
PopUp og fuldskærm - Jeg er godt klar over, at der er forskellige meninger om dette. Siden adresserer for det meste blot antenneforeningens medlemmer, derfortænkte jeg, at her kunne jeg vidst godt tillade mig at eksperimenter med at gøre det lidt anderledes. Og skal man tage et par punkter mere, som kan være uhensigtsmæssigt, så er det at hovedet er rigelig stort, med normal visning og især, hvis man kører 800x600 skærmvisning - samt at siderne kun er testet med Internet Explorer. DHTML som bruges i åbne/lukke findes i i fx. Netscape 4,7 - alt vises derfor åbnet i Netscape 4,7

Der findes en hints-side til de der vi bruge siderne lidt oftere.

Tilbage til problemet. Måske er problemet browserafhængigt, men jeg kan få problemet frem fra flere maskiner, hvor Internet Explorer browserne ikke er i samme opdateret stand. Det ene er vidste version 5.xx
Avatar billede roenving Novice
05. juli 2003 - 17:30 #9
-- oki, det kan være at min kombination (IE 6 sp1/XP pro) er mere robust overfor problemet -- og jeg kan ikke se nogle fejl i scriptet (udover, at al den readyState-kode ligger der, men det har vel med problemet at gøre ,-) ...

-- og så selvfølgelig at koden er strictly M$ -- jeg ville selv vælge at udelukke IE4 i stedet for at udelukke stort set alle andre end IE ...

-- nu var det jo ikke det dit problem handlede om, men ved at bruge getElementById ville du får NS6+, Opera og andre med på en kigger ...

Hvis du kigger på en hel del af de scripts som er rundt omkring (f.eks. dhtmlcentral.com) kan du få en god ide om omfanget af en evt. code-branching for de forskellige browsere ...

Understøttelse af NS4 er en sag _helt_ for sig selv -- de indførte layer-begrebet, men på sådan en måde, at ingen andre bruger de metoder -- ikke engang NS6+ ...

Omfanget er ikke så stort hvis man får struktureret sin kode ordentligt, men det kan netop også være problemet, fordi man jo gerne lige vil have den funktionalitet strukket ind i det man allerede har og ikke projekterer ordentligt ;o]

-- ja, jeg fik lige den tanke mens jeg skrev sidste sætning, at en virksomhed, som fungerede efter samme principper som de fleste hjemmesider ville være gået fallit, før det første produkt kom på banen *gg*
Avatar billede hermanr Nybegynder
05. juli 2003 - 17:45 #10
Det må dreje sig om de første 2 kodelinier - Nu er jeg ikke skrap til dette, men måske finder jeg ud af at ændre disse en anden gang - når jeg har løst dette.

På den ene PC har jeg selv IE 6 sp1/XP pro - og der får jeg også af og til fejlen. Ligeledes på en Windows 2000 professinal med fuldt opdateret IE 6 browser.

Jeg har søgt en del på nettet, men har ikke kunnet finde noget med lignende problem eller noget der fører frem til en løsning.

Åbne lukke løsningen er hentet fra bogen IT Professionan – Dynamic HTML in Action ISBN 0-7356-0563-7 Microsoft Press

I XML Loder siden, som jeg henviser til skriver man:

”Actually, just the last two lines of the function are enough to load the XML file. The previous two lines ensure that any JavaScript functions that we may use to manipulate the XML file data later, will not perform any function on an uninitialized object.”

Kunne man indsætte tilsvarende sikkerhedsforanstaltning i min kode, så tror jeg problemet var løst. Men jeg kan ikke finde ud af, hvordan.

Hvis jeg i min kode indsætter en alert, når det konstateres, at gif filen er i unloaded state, så løser problemet tilsyneladende sig selv. Jeg har derfor forsøgte med at indsætte en delay, men det har tilsyneladende ikke samme heldige virkning.
Avatar billede roenving Novice
05. juli 2003 - 21:04 #11
Hvilke 2 linjer ?-)

...
Avatar billede roenving Novice
05. juli 2003 - 21:38 #12
Nu har jeg lige sat mig ned og kigget din kode grundigt igennem, og der er mange, nej RIGTIG mange ting, jeg ville gøre anderledes, for jeg ville ikke finde på at acceptere at væsentlige funktionaliteter i noget jeg havde fat i, var afhængig af, om man i sit indkøb gjorde det i en bestemt butik i Seattle ...

For nu lige at starte med en ting, som vil være den samme uanset browser, så har jeg lært (af andre herinde) at en løsning med at ændre class (className) er en rigtig ueffektiv løsning -- og så ændrer du kun een property, så kunne man da enormt meget mere effektivt ændre den property på eet element i stedet for at tvinge browseren til at genopbygge sit css-bibliotek, derefter løbe alle elementer igennem og give dem den nye (ja, alle de, som ikke påvirkes får også en ny style, for browseren har ikke en jordisk chance for at vide, om de ændringer, som er kommet i css-biblioteket ikke påvirker den hierarkiske tildeling af styles ,-), og til sidst lave en reflow af alle elementer (jvf. foranstående) ...

-- heldigvis skal den ikke også rendere _alle_ elementerne, men vi har dog en kilde til en masse bøvl ...

Den anden ting -- og resten vedrører jo din implementering, som er IE strictly, only and can not be changed ;-/

-- er en særdeles ueffektiv start-tildeling af properties, for god orden skyld skal du lige lave det om:

function MakeExpanding(){
  //--------------------------------------
  // Add click handler to all items of class L1 or L2

  var oDA=document.all;
  for (i in oDA){
    if (oDA[i].className=="L1"){
      oDA[i].onclick=Function("ToggleMenu(this)");
      oDA[i].href="java script:void(0);";
      oDA[i].title="Åben / Luk";
    }else if (oDA[i].className=="L2"){
      oDA[i].onclick=Function("ToggleMenu2(this)");
      oDA[i].href="java script:void(0);";
      oDA[i].title="Åben / Luk";
    }
  }
}

-- og så vil jeg altså kritisere dit valg af løsningsplatform, for jeg er da ikke i tvivl om, at man kan lave en masse dejlige DHTML-løsninger med de funktioner, som M$ har indbygget i sine browsere, men jeg forstår overhovedet ikke, at nogen (og altså også du *-) vælger at bruge løsninger, som notorisk udelukker brugere -- og det er tilfældet her ...

Der findes metoder, som i praksis dækker alle de funktioner, som bruges her som er indkorporeret i den globale standard, som World Wide Web consortium (W3C i daglig tale -- www.w3.org -- også Microsoft er medlem) har fastlagt ...
Hvorfor så vælge den metode, som kun kan bruges af Microsofts browser, når du kan vælge en funktion lige ved siden af, som bare ikke hedder det samme eller kaldes på samme måde (og forøvrigt heller ikke er så ressorcekrævende) -- et eksempel:

En kodeblok som:

function ToggleMenu(oHead){
  var oAll=document.all;
  iIndex=oHead.sourceIndex;
  if (oAll(iIndex+3).className=="off"){
    oAll(iIndex+1).src="img/open.gif";
    oAll(iIndex+3).className="on";
  }
...

Kunne skrives mere effektivt med koden (men selvfølgelig ikke helt så smertefrit, på den måde er der noget smart i det !-)

function ToggleMenu(oHead){
  var num = oHead.id.substring(7);//<-- tallet er tænkt med en id som f.eks. menupkt5
  var uMenu = document.getElementById('underMenuDiv'+num);
  if(uMenu.display=='none'){
    document.getElementById('menuImg'+num).src=openimage.src;
    uMenu.display=='block';
  }
...

No offense, men jeg syns da du lige skal overveje det (måske specielt udformningen med class-løsningen -- den kode jeg lige har givet dig (den del, som kigger efter display==none og sætter display=block og så selvfølgelig omvendt) kan du smide lige ind over din egen, og hvis dine menupunkter har en logisk nummerering kan du tage det hele ind på et øjeblik ;O)

hth
jes
Avatar billede roenving Novice
05. juli 2003 - 21:49 #13
Man kan ikke -- og jeg _vil_ ikke -- fortænke Microsoft i, at de laver en masse eksempler med alle de dejlige ting som deres produkter kan, men kan da godt blive en anelse irriteret, når det ender i sådan noget
-- på mig virker det som en fortsættelse af den strategi, som de lagde for 8-9 år siden: Vi VIL være verdensherskere på et område, hvor der f***** er nogen andre som har succes lige nu ...

Forretningsmæssigt konceptuelt må de jo godt sådan noget, men jeg synes altså det er noget 'gris' -- når det faktisk er lettere at samarbejde uden at gøre det på skrømt ...
Avatar billede roenving Novice
05. juli 2003 - 21:57 #14
Hov, Herman, jeg glemte da lige at gøre opmærksom på, at den kode jeg skrev sidst kun virker fra version 5-browsere og opad :D
Avatar billede hermanr Nybegynder
06. juli 2003 - 00:13 #15
rosenvig - tak jeg har vidst fået noget at kigge på her
Avatar billede roenving Novice
06. juli 2003 - 00:57 #16
You're welcome ...

btw så er det altså så også sådan, at ca. 1 af 8 har slået javascript fra, 1 ud af 15 bruger IKKE IE, men da de fleste vonHörenSagen som har slået javascript fra er skoler, som ALLE bruger IE, har vi at 7 - 10 % af internet-surferne, som overhovedet har en chance for at udnytte DHTML-kode vil være udelukket fra M$-only scripts som du bruger ...

-- og selv har jeg taget den beslutning, at kun hvis jeg bliver tvunget til det vil jeg kigge efter præ-v5-browsere -- ikke at jeg har noget imod dem, men man kan sige, at de relativt nemt kan tilpasse sig uden at skulle tvinges til ubehagelige valg ...

-- og jeg havde lige fat i et script, som var fuldt ud cross-browser og understøttede alt v4 og op -- dog uden at kræve problemer med document.all ,-)

-- de koder du bruger, kan _forholdvis_ nemt udvides til at dække alle v4+ så det er ikke så langt væk ;O)
Avatar billede hermanr Nybegynder
06. juli 2003 - 01:01 #17
Ja, men forholdsvi er relativt – måske kan jeg ikke

Dit 2. kodeblok kan jeg ikke overskue, dels hvordan den virker, og dels hvad jeg skulle lave for eventuel at implementere den. Jeg er blot en amatør ud i dette.

Dit 1. kodeblok har jeg udskiftet med midt oprindelige, og jeg kan godt se, at det er skrevet lidt mere handy. I eksemplet fra bogen var det blot et sæt, men jeg fik brug for 2, så det var mig selv der fik skrevet det lidt kluntet.

Det er ikke fordi jeg ønsker at udelukke nogle browsere, men det er en jungle at finde rundt i, hvad den ene og den anden kan, og hvordan man skal skrive koden til det. Derfor valgte jeg en kode, som virker på over 97% af browserne brugt i Danmark. Jeg har en anden amatør web http://navigate.dk Den startede på nettet i 1994, og det er mange år side at Netscape besøg til den var på over 4%, inklusiv, at jeg selv testede den med Netscape af og til. I navigate.dk har jeg holdt mig tilbage med mange løsninger blot for at det skal kunne virke for de fleste, men desværre så har Microsoft vidst allerede vundet den game. Opera brugere i Danmark udgør tilsyneladende også kun tal målt i promille. Du nævnte at virksomheder ikke kunne tillade sig at gøre lignende med andre ting, og dertil må jeg sige, at du vidst tager fejl. Mange bruger 80/20 reglen. De 20% har man ikke tid, eller råd, til at beskæftige sig med.

Men jeg finder ikke løsningen på mit problem ved at skrive om alt andet.
Avatar billede roenving Novice
06. juli 2003 - 01:15 #18
Selvfølgelig ikke, men undervejs i skrivningen af mit længere indlæg fik jeg tanken om, at netop class-løsningen kunne være det, som skubbede browserne ud over kanten -- derfor gjorde jeg lidt ekstra ud af det ...

Forøvrigt er de nyeste oplysninger jeg har om browser-krigen: http://www.thecounter.com/stats/2003/May/browser.php

-- al internet-tælling er behæftet med _alle_ usikkerheder, men billederne varierer vist kun for alvor, når man ser på egentlige nørd-sider som denne *gg*
Avatar billede hermanr Nybegynder
06. juli 2003 - 01:52 #19
Tak for theCounter.com liknet

Mon ikke jeg får alle browsere med, som forstår det brugte DHTML ved at ændre toppen til følgende

//----------------------------
// This file creates a number of variables describing the browser.

var bVer4 = ( parseInt(navigator.appVersion) >= 4 )
var bDoesDHTML = ( (navigator.userAgent.indexOf("MSIE") >= 0) && bVer4) || document.getElementById?1:0

Jeg har anvendt samme åbne/lukke funktion på en intranet web. Det første års tid opdagede jeg ingen problemer. Men for godt et år siden opdagede jeg at giffen kunne forsvinde. Da jeg begyndte med aovnet.dk i januar i år, så kørte det faktisk også flot problemfrit en stykke tid. Altså også med links i blokkene.

Jeg har tænkt på at forsøge med at lægge koden for de 2 gif filer direkte i JavaScript siden i stedet for at hente dem som gif filer. Det har jeg vidst leget med en gang før. Jeg er klar over, at det er en lappeløsning, og det er måske det bedste jeg finder.
Avatar billede roenving Novice
06. juli 2003 - 02:07 #20
Så bliver du også nødt til at ændre de linjer hvor document.all bliver brugt og sourceIndex er heller ikke brugeligt til de andre ...

Derimod kan du med noget simpel kode-branching få det til at funke -- sekund ,-)
Avatar billede roenving Novice
06. juli 2003 - 02:15 #21
function ToggleMenu(oHead){
  var num = oHead.id.substring(7);//<-- tallet er tænkt med en id som f.eks. menupkt5
  var uMenu = (document.all)?document.all('underMenuDiv'+num):document.getElementById('underMenuDiv'+num);
  if(uMenu.style.display=='none'){
    var iMenu = (document.all)?document.all('menuImg'+num):document.getElementById('menuImg'+num)
    iMenu.src=openimage.src;
    uMenu.style.display=='block';
  }

-- og ufff ... jeg fandt en grim overseelse (style)

-- selvfølgelig har jeg opfundet div-navnene, men det går jeg ud fra, du kan få konsekvens-rettet ,-)

-- og så skal vi også lige have lavet en funktion, som skjuler undermenuerne, hvis DHTML'en fungerer OG så have fjernet de der .off og .on -styles -- men lad os lige tage een ting ad gangen ;O)
Avatar billede hermanr Nybegynder
06. juli 2003 - 02:34 #22
Har du et websted, hvor jeg kan se dette anvendt. På den måde kan jeg nok lettest finde ud af, hvad det er og hvor meget der skal til for at ændre koden hos mig

nb: i morge får jeg nok ikke så meget tid til at 'lege' kode
Avatar billede roenving Novice
06. juli 2003 - 02:45 #23
Næh, desværre er den portal som jeg vil bruge (på vores lokale net) ikke kommet op og spille endnu, så jeg kan også kun køre det igennem computeren, når jeg prøver noget, men hvis html-siden er tilgængelig imorgen, vil jeg se om jeg ikke kan lave en lokal gennemskrivning og test -- herfra er det jo kun copy/paste og konsekvens-rettelser -- så kan du få en status-melding ,-)

-- Selvfølgelig vil jeg ikke kunne teste, om dit problem bliver væk, men jeg skal nok krydse fingre *g*

-- men det giver da en mulighed for at få både de musikalske og en masse andre med ;o]
Avatar billede hermanr Nybegynder
07. juli 2003 - 16:38 #24
Problem observationer.


Har forsøgt at erstatte

oAll(iIndex+1).src="img/open.gif";

med

oAll(iIndex+1).setAttribute("src","img/closed.gif");

Det virker, men er ustabilt på samme måde.

Har forsøgt med indskudt delay - samme problem - men kalder jeg en alert, så retter problemet sig mens alerten er fremme.

Har forsøgt at barbere websiden, som testes på ned til blot 2 blokke og kun et <a .. target="_blank" link og fjernet kaldet til andet JavaScript fx. det der havde "FrameIt" og "PopUp" - Resultatet det samme.

Har testet med en MS Internet Explorer 5.0 på en anden PC - samme resultat.

Så er det jeg begynder at undre mig over, hvordan det kunne køre stabilt tidligere ... Måske er problemet opsamlet sammen med sikkerhedsopdateringer til browser?

Installerede SP4 og alle bløde opdateringer på en Win 2000 - men samme problem derefte.

I venstre menu bruger jeg samme løsning, men her bruges kun links indenfor samme frameset - Det fejler aldrig.

Porblemet kommer kun af og til efter man i en side har brugt en link, som åbnes i et nyt vindue, og man derfra kommer tilbage til den henvisende side. Brugere man menuen, så retter fejlen sig altid for samme gif-billede. Kører jeg direkte fra C:-drevet så er der meget langt mellem fejl. Kører jeg på en lokal web server, så virker det mere stabilt, end hvis jeg kører på en server på internettet.

Måske skulle jeg overveje at give hver pil sin id, som du vidst foreslår og styre pilen på dette.
Avatar billede hermanr Nybegynder
08. juli 2003 - 16:31 #25
Jeg er næsten sikker på det er browserproblemer. Har givet hver pil sin id og ændret sidste del af koden til nedenstående. Så kommer pilen før - eller senere

function ToggleMenu2(oHead){
  var oAll=document.all;
  iIndex=oHead.sourceIndex;
  if (oAll(iIndex+2).className=="off"){
    oAll(iIndex+1).src="img/open.gif";
    oAll(iIndex+2).className="on";
  if (oAll(iIndex+1).readyState!="complete"){
    pil=oAll(iIndex+1).name;
    document.getElementById(pil).setAttribute("src",openimage.src);
    window.status = "pilen "+pil+" "+oAll(iIndex+1).readyState;
    setTimeout("igen(pil)",3000);
  }
  }
  else {
    oAll(iIndex+1).src="img/closed.gif";
    oAll(iIndex+2).className="off";
  if (oAll(iIndex+1).readyState!="complete"){
    pil=oAll(iIndex+1).name;
    document.getElementById(pil).setAttribute("src",closedimage.src);
    window.status = "pilen "+pil+" "+oAll(iIndex+1).readyState;
    setTimeout("igen(pil)",3000);
  }
  }
}

function igen(pilen) {
  document.getElementById(pilen).setAttribute("src",closedimage.src);
  window.status="";
}
Avatar billede roenving Novice
08. juli 2003 - 16:40 #26
-- okay

-- lidt spøjst, at jeg lige var igang med at samle sammen, så jeg kunne checke min ide !-)
Avatar billede hermanr Nybegynder
08. juli 2003 - 17:17 #27
roenvig - tak fordi du forfølger det

Det kan godt være det skyldes jeg bruger relative i forhold til iIndex meg jeg tror problemet afhænger af, hvor meget "snavs" browseren har at slæbe rundt på.

Timeren kan køres meget længere ned - i før viste glemte jeg at overføre hvilken pil til funktion igen

function ToggleMenu2(oHead){
  var oAll=document.all;
  iIndex=oHead.sourceIndex;
  if (oAll(iIndex+2).className=="off"){
    oAll(iIndex+1).src="img/open.gif";
    oAll(iIndex+2).className="on";
  if (oAll(iIndex+1).readyState!="complete"){
    pil=oAll(iIndex+1).name;
    document.getElementById(pil).setAttribute("src",openimage.src);
    window.status = "pilen "+pil+" "+oAll(iIndex+1).readyState;
    setTimeout("igen(pil,openimage)",100);
  }
  }
  else {
    oAll(iIndex+1).src="img/closed.gif";
    oAll(iIndex+2).className="off";
  if (oAll(iIndex+1).readyState!="complete"){
    pil=oAll(iIndex+1).name;
    document.getElementById(pil).setAttribute("src",closedimage.src);
    window.status = "pilen "+pil+" "+oAll(iIndex+1).readyState;
    setTimeout("igen(pil,closedimage)",100);
  }
  }
}

function igen(pilen,hvem) {
  document.getElementById(pilen).setAttribute("src",hvem.src);
  window.status="";
}
Avatar billede roenving Novice
08. juli 2003 - 17:27 #28
Jeg har lige arbejdet lidt på min ide, men da jeg var nødt til at hente stylesheet og script lige ind i min side bliver det langt at smide her ...

-- det er ikke helt færdigt men ret langt (det med at udvide dem, hvis dhtml ikke understøttes mangler), men jeg sender dig en e-mail på den adresse, som er på siden, så kan du prøve at se, om det fjerner problemet og så kan vi arbejde videre derfra !-)
Avatar billede hermanr Nybegynder
09. juli 2003 - 04:15 #29
Jeg har modtaget din mail og vil meget gerne teste det igennem, men der kommer nok til at gå lidt tid inden jeg får det gjort – Jeg fandt jo en klampeløsning, som faktisk kører.

Jeg tror du har givet mig nok til at jeg kan se idéen. Jeg skal sikkert bruge et af indholdssiderne i stedet for menu-siden, da problemet kun opstår når jeg har links til eksterne adresser.

Men rigtig mange tak / Herman
Avatar billede roenving Novice
09. juli 2003 - 10:33 #30
Velbekomme ,-)
Avatar billede hermanr Nybegynder
19. juli 2003 - 11:14 #31
roenvig

dialogen med dig førte til en alternativ løsning, som måske klarer opgaven, og en lappeløsning, som jeg selv fandt frem til på grund af dialogen her. Lappeløsningen virker. Din alternative løsning prøver jeg senere. Hvordan lukker jeg sagen med points givning til dig.
Avatar billede hermanr Nybegynder
19. juli 2003 - 11:16 #32
Det fandt jeg selv svaret på - du sender blot et par ord her - som svar - ikke som kommentar
Avatar billede roenving Novice
19. juli 2003 - 14:42 #33
Jamen du vender bare tilbage, hvis du har flere spørgsmål '-)
Avatar billede roenving Novice
20. juli 2003 - 16:26 #34
-- og tak for points ;~}
Avatar billede hermanr Nybegynder
20. juli 2003 - 22:52 #35
roenvig - Jeg takker dig for hjælpen - Herman
Avatar billede roenving Novice
20. juli 2003 - 22:54 #36
;O)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester