10. december 2000 - 00:35Der er
21 kommentarer og 1 løsning
Redning af fejlloadede rammer
Jeg har prøvet at lave noget script der kunne sørge for at hvis en ramme blev loaded forkert genererede den er reload af de sider den mangler. Men er løbet sur i det. Det virker 9 udaf 10 gange men den tiende gang reloades der ikke rammer siden viser blot sig selv minus nogle linier. http://hjem.get2net.dk/Jakob.Aggernaes/temp/expframe.html Klik ca 10 gange på et af target=\'_top\' linksene for at se det gå galt.
Og kik så på koden og fortæl mig hvad det er jeg gør galt.
AI bliver først for alvor en del af arbejdet, når teknologien integreres i den måde, vi arbejder på. At have adgang til AI betyder ikke nødvendigvis, at medarbejderne er klar til at bruge den.
Det er muligt at du har en fejl i din browser, eller at det er et cache problem... hvis det er det sidste kan du altid prøve at appende noget (new Date()).getTime() til en query-string.
den giver bare et tal, der er afhængig af dato og derfor forskellig hver gang. Dvs at selv hvis browseren lægger siden i cache, vil den ikke genkende url´en hvis den indeholder sådan noget, og derfor vil den hente den hver gang.
Forresten udfører min netscape 4 en ulovlig handling når jeg forsøger at lege med din side.
Her er et par ting, der lige stødte mig lidt... istedet for java script:void() prøv at bruge java script:\'\' eller java script:{} - ikke alle browsere kender void()
istedet for at bruge komplicerede løkker til at parse din search-string kunne du evt prøve det her: var query; if (query = location.search) eval(query.replace(/(\\?|\\&)(\\w+\\=)(\\w*)/g,\';$2\\\'$3\\\'\'))
har aldrig selv brugt location.replace(url) bruger altid location = url det virker i alle de sider, jeg har lavet til NUTSCAPE
nå ja... Netscape er jo oz meget hård mht reserverede ord. man skal passe på med ord som name osv... og det med illegal characters i URL og win handles går også nemt galt.
og jeg ved godt at man kan have lange diskussioner om hvorfor Nutscape er eller ikke er en skodbrowser. Men det stærkeste argument må være at Nutscape er kodet så tumpet at det tillader stack-overflows, ugyldige sidefejl, og andre ulovlige handlinger, som ikke bare får den til at crashe men nogle gange gør det umuligt at bruge nutscape igen før man genstarter computeren.
Men komplicerede løkker kan jeg forstå. Jeg er kun lige begyndt at snuse til regular expressions. Indtil videre har jeg haft fine erfaringer med replace(url), og man slipper for en frustreret bruger der prøver at bruge back til at komme forbi den side der sender ham frem igen hvergang han trykker. Men rigtig det må testes. Og som du nævner navnesammenfald, både rammer og searchparametre hedder menu og main, og det er heller ikke \"sikre\" navne.
Men indtil videre bare iseng og sove, jeg er ved at lave formange slåfejl. Håber at accepte imorgen (gør det unner alle omst. stor hjælp. tak)
virker den ALDRIG. Men ifølge javascript ref v1.3 skal man altid få true når man tester på en eksisterende variabel (her: ( location.search ) . (anden test ligget pt i expframesmain0.html)
så min pt teori er at location.search i virkeligheden slet ikke er en variabel, men snarere en funktion med sideeffekter som prøver at opføre sig fornuftigt alt efter hvor den står (og altså fejler her)
Det ku ligne en specifik Netscape bug, men der må da være en vej udenom. dvs en måde at teste om search strengen er tom, og om den indeholder strengen \"noframes\".
Det har ikke noget at gøre med hvordan man ændrer location. begge måder er lige effektive. De virker hver gang, forudsat man beder dem om det, og det gør scriptet åbenbart ikke.
well, men kan ikke i alle browser- og javascriptversioner være sikker på hvad der har typen string og hvad der har typen object. Nogle gange kan man løse problemet ved at sige \"\"+minVar == \"\" istedet for minVar == \"\"
Men egentlig burde du ikke behøve at teste for den, da en tom streng burde være opfattet som null.
Det er måske det der skal til == null i stedet for == \"\"
Men desværre gir if ( ( parent==self ) &&( ( self.location.href.indexOf(\"?\")==-1 ) ||( location.search.indexOf(\"noframes\")==-1 ) ) ) præcis samme fejl og ligeså nu og da. Det var nok et vildspor.
Det burde også være muligt at få filnavnene ind i framesettet. Ikke bare lægge dem ind via onLoad()
Næ Næ, jeg har passet på. rammen = minMenu, variable = myMenu. feltid i searc-streng = menu. så det er ikke der.
Heller ikke <frame name=minMenu src=\"java script:this.src=myMenu\"> <frame name=minMenu src=\"java script:this.src=top.myMenu\"> <frame name=minMenu src=\"java script:this.location=top.myMenu\"> <frame name=minMenu src=\"java script:this.location.href=top.myMenu\"> <frame name=minMenu src=\"java script:void(this.location.replace(top.myMenu))\"> <frame name=minMenu src=\"java script:top.frames.minMenu.location.replace(top.myMenu)\"> Det bliver til ret mange mulige kombinationer. Alt ialt.
<frame name=minMenu src=\"java script:top.frames[0].location =top.myMenu\"> virker i IE men ikke i netscape
med en alert lige foran alert (\"filen reloades med: \" +myFrame +\"?menu=\"+escape(myMenu) +\"&main=\"+escape(self.location.href) ); top.location.replace( myFrame +\"?menu=\"+escape(myMenu) +\"&main=\"+escape(self.location.href) ); har jeg een gang fanget den lige før den \'gik galt\' så den kommer så langt.
Så gik den død igen. Det ku tyde på en race af en art. At denne side bliver ved at loade en tid efter at dens location er blevet ændret. Og så skriver i munden på den anden og nogengange vinder. Men så burde AL linking via location jo være risikabel.
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.