Avatar billede brock Nybegynder
23. oktober 2000 - 21:11 Der er 22 kommentarer og
1 løsning

Check om frame er loaded

Jeg har brug for at i et popupvindue(popwin), som jeg skaber loader jeg en andens frameset ind, men der er en bestemt frame(textfield), jeg venter på bliver loaded !!
Avatar billede nixen Nybegynder
23. oktober 2000 - 21:23 #1
function doc_onload() {
if framesetNavn.frameNavn.readyState=\"complete\" gå videre til det du skal gøre..
else setTimeout(\"doc_onload()\",100)
}

funktionen doc_onload() gør lige præcis det...

egentligt er der en \"onreadystatechange\" event man burde bruge, men jeg har aldrig fået andet en browser-crashes ud af den, så derfor timeouten..
Avatar billede nixen Nybegynder
23. oktober 2000 - 21:24 #2
..og så skulle der jo naturligvis have været paranteser rundt om framesetNavn...complete\" :)
Avatar billede olebole Juniormester
23. oktober 2000 - 21:35 #3
<ole>
Hvilke OS\'er og browsere understøtter det? Mon ikke det er noget rent MS-skod?
/mvh
</bole>
Avatar billede nixen Nybegynder
23. oktober 2000 - 21:41 #4
ole>> Nyeste optælling herfra: 97% IE4.0+ *hæhæ*
Avatar billede ldanielsen Nybegynder
23. oktober 2000 - 21:53 #5
Det hjælper ikke når kunden selv, samt hans største kunde, bruger netscape.

Vi er stadig nogle stykker der skal lave ns-kompatibel kode, og faktisk er en smule stolte af det
Avatar billede olebole Juniormester
23. oktober 2000 - 21:55 #6
iMac...en af verdens mest solgte enkelt-maskiner! Det handler jo ikke kun om browsere - også om styresystemer og hardware.
Men, hvis man på den anden side insisterer på at forære internettet til et enkelt firma, så er det jo ikke til at hamle op med.
Man må jo på den anden side sige, at MS er dygtige - at de kan få folk til at gøre det...og så ovenikøbet, mens de samme folk sidder og griner ad det...tjahhhhhh...?!?
/mvh
Avatar billede olebole Juniormester
23. oktober 2000 - 21:56 #7
ldanielsen >> ;o))))
Avatar billede nixen Nybegynder
23. oktober 2000 - 22:14 #8
readyState property\'en virker da på både Mac og Unix..
brock>> MEN kun fra IE 5.0 frem :-(

ldanielsen + ole>>
<skælmsk>
Fair nok, jeg kan da så udemærket godt forstå at i er stolte af at få noget til at virke i netscape 4.. ;-)
</skælmsk>

<realistisk?>
Men når nu store onde Microsoft har lavet en property der gør livet lettere for mig, skal jeg så lade være med at bruge den?
</realistisk!>

Ud over det gør jeg selv mit bedste for at skrive netscape-kompatibel kode, der er bare tit problemer med det, og gerne problemer man må bruge ekstremt dodgy workarounds for at løse...
Jeg skulle lige til at forklare i en uendelighed, men jeg tror sgu jeg laver et stort spørgsmål til mine eksempler i stedet for...


Avatar billede olebole Juniormester
24. oktober 2000 - 01:07 #9
Av...DET må du lige vise mig, hvordan jeg får til at virke på en Mac! Jeg er godt nok i Stockholm de næste to dage, men når jeg kommer hjem, vil jeg med stor interesse kaste mig ud i en test af et eksempel ;o)

Selvfølgelig er det da fair nok at være stolt over at kunne programmere til NS...det kræver nemlig, men kan sin HTML-syntaks! Så fejltollerant IE er, er der vel ingen, der kan blive stolt over at se, ens arbejde bare fungerer der...eller...(?) ;O))

Realistisk --> Ja...det er de færreste kunder, der vil finde sig i, deres side kun kan ses under Windows i IE5+...så deeeeeeeeeeeeeet...
/mvh
Avatar billede olebole Juniormester
24. oktober 2000 - 01:10 #10
PS: Ifølge MS\'s dokumentation, staves det iøvrigt: \'ReadyState\'...med stort \'R\'
Avatar billede brock Nybegynder
24. oktober 2000 - 10:00 #11
Tak skæbne for en masse svar ;)

Jeg er beæret!!!

Nixen, det script jeg leder efter skal kunne understøtte både IE og NS - ellers kan jeg ikke bruge dem - jeg troede faktisk, at det var en simpelt ordre, som både understøttede NS/IE - hmmm

Hvis det ikke eksisterer er det jo noget skidt, men så kan man måske dele koden op ved disse browsere som understøtter ReadyState benyt den
2) de browsere som Ikke understøtter Readystate benyt f.eks. setTimeout


Avatar billede nixen Nybegynder
24. oktober 2000 - 12:03 #12
brock>> Well, ce\'st la vie (jeg har aldrig lært fransk, så evt. fejl er bare ærgelige) - Når vi først kommer igang med vores Jihad(IE/NS) skal der meget til at stoppe os ;-)

Understøtte NS ... hmmmm... altså, så vidt jeg har forstået loades html-dokumentet stringent lineært, så man kan vel teste på det sidste objekt på frame dokumentet, i stil med
if (netscape) {
if top.frameNavn.document.testDiv!=
Avatar billede nixen Nybegynder
24. oktober 2000 - 12:13 #13
doh! sorry, jeg fik vist lige submittet lidt for hurtigt...
altså:
if (top.frameNavn.document.testDiv.typeOf()!=\"undefined\")
eller sådan noget, i stedet for readystate-propertyen.. Nej, det du gør er naturligvis i frame2_onload() at sætte en variabel angiver OK, dvs, frame2.htm:
<html><head><script language=\"Javascript\">
loaded=false;</script>
...
...
<script language=\"Javascript\">
loaded=true;
</body></html>

Denne variabel kan du så teste på med et timeoutLoop.
Jeg har ikke testet det, men hvis ikke det vil må du jo lige sige til ..
ole>>OLE ;0) (nixen>>NIXEN, husker du?)
Her er hvad MSDN har at sige:
readyState Property

--------------------------------------------------------------------------------

Retrieves the current state of the object being downloaded.

Syntax

HTML N/A
Scripting [ sState = ] object.readyState

Possible Values

sState Variant that receives one of the following values:uninitialized Object is not initialized with data.
loading Object is loading its data.
loaded Object has finished loading its data.
interactive User can interact with the object even though it is not fully loaded.
complete Object is completely initialized.


The property is read-only. The property has no default value.

Expressions can be used in place of the preceding value(s), as of Microsoft® Internet Explorer 5. For more information, see Dynamic Properties.

Remarks

Each object determines which of the five states it exposes.

All objects, except OBJECT, that expose the readyState property return the value as a string. The OBJECT tag returns an integer in the range of 0 (uninitialized) through 4 (complete).


apropos fejl: Nej, der må jeg give dig 100% ret - jeg læste en antagelse af at MERE END 50% af koden i IE4 udelukkende var til for at håndtere fejl-HTML

Avatar billede brock Nybegynder
24. oktober 2000 - 15:46 #14
ehhhh,

eller sådan noget, i stedet for readystate-propertyen.. Nej, det du gør er naturligvis i frame2_onload() at sætte en variabel angiver OK, dvs, frame2.htm:
<html><head><script language=\"Javascript\">
loaded=false;</script>

det tror jeg ikke lige helt jeg forstår!!!

Det jeg har brug for er at måle om en fremmed side (hvis framesæt jeg kender) er blevet loaded med den specifikke frame

Derudover kan IE4 heller ikke forstå ReadyState?

Kan man måle om den enkelte browser understøtter en given kommando? f.eks. checkbrowser(\'ReadyState\') etc...

Avatar billede brock Nybegynder
24. oktober 2000 - 15:47 #15
By the way - Jeg er med på Jihad\'en (SkodScape) skulle dø (ups den er jo død) så begraves da, før den begynder at stinke (ups- den stinker jo allerede)
Avatar billede olebole Juniormester
24. oktober 2000 - 17:22 #16
MS kan åbenbart ikke beslutte sig for, hviken case, det skal skrives med - skriver forskelligt forskellige steder ;o)
Følg spm. her på Eksperten og du vil se, at 80% af dem, der handler om kode, der ikke virker i NS, skyldes folk ikke kan HTML-syntaksen. Det retter IE for dem - og de lærer aldrig at programmere! Til gengæld kalder de NS for SkodScape, hvilket sikkert også er nemmere og mindre smertefuldt, end at se sandheden i øjnene ;o)

brock >> Skal det virke X-browser + X-platform og det ikke er dine filer, der loades ind i dit frameset, kan du ikke fjern-aflæse det - uden videre!
Du vil dog sikkert kunne gøre således:

<html>
<body>
<script language=\"Javascript\">parent.loaded=false;</script>

    <!-- #INCLUDE file =\"dinFjernFil.html\" -->

<script language=\"Javascript\">parent.loaded=true;</script>
</body>
</html>

Denne fil kalder du f.eks: \'noget.shtml\'...bemærk \'s\' i \'.shtml\'!
\'noget.shtml\' skal så loades ind i dit frameset i stedet for fjern-filen.
Så kan du have en variabel i dit frameset, du kalder \'loaded\'. Den vil du kunne spørge til med små mellemrum og når den bliver \'true\' er din fjern-fil loaded.
Dette hack kræver dog, din udbyder understøtter SSI (Server Side Include).
/mvh
Avatar billede nuno Nybegynder
24. oktober 2000 - 18:05 #17
hmm kort og godt handler det nu bare om, at folk ikke kan kode, når de kalder NS for SkodScape og hvad de ellers har af fantasifulde forslag.

Hvis nu de brugte den tid de bruger til at finde på disse \"sjove\" navne til at lære at kode X-browser istedet. Så kunne det jo være...

/nuno

Avatar billede brock Nybegynder
24. oktober 2000 - 19:32 #18
Hej OleBole - Jo, min udbyder understøtter ISS(5), hvilket er en nødvendighed, da jeg er ASP-programmør. Angående Netscape er der flere ting, jeg ikke kan lide ved den, f.eks at den ikke regner frame ud i pixel, men i procent, det giver en unøjagtighed, som stiller begrænsniner samt dens måde at håndtere tabeller på (tro mig- jeg ved, hvad jeg taler om) derudover er der flere af NS-versioner, som gør, at hvis du kører en tabel i en tabel i en tabel, hvori der indgår aspkode samt grafik, dykker NS og tager hele win98,2nd edition med sig så maskinen skal coldbootes - Det er en alvorlig fejl set i mine øjne (+ nogle programmører ude fra Stibo Programmering Viby Århus ) men nuvel igen er der også problemer med IE - en af de store er at MS udvikler nye ting, som de ikke vedligeholder og udvikler (samt huske at sætte ind i nye versioner) - f.eks. ie 4.5 (5) på Mac - damn en gang rod fra MS, but still IE har nogle gode features, og indtil IE3 var NS da den sejeste browser - problemet er bare, at de ikke har fået at videreføre udviklingen indenfor deres browser som MS gjorde etc etc etc bla bla bla.

Endelig er Html IKKE programmering, men til nøds \"kodning\" - man programmer vel heller ikke i WORD, når man sætter et brev op bla bla bla.

Nå men til sagen ;)

- jep den er smart !





Avatar billede nuno Nybegynder
25. oktober 2000 - 09:41 #19
jeg er langt hen ad vejen enig med brock - men mener at man til stadighed (så længe der er folk der bruger NS - også selv om det er få) bør kode til fuld funktionalitet i NS.

Ang. min kommentar ovenfor - så hører man jo heller ikke læger brokke sig over fx HIV og give den underlige tilnavne fordi man ikke har kunnet få bugt med den endnu.

Når man bliver sur på NS - så bliver man i bund og grund sur på sig selv - fordi man ikke magter at kode så det virker over alt. For det ville jo være den ønskværdige situation - ik\'?

Hvis der er tale om deciderede fejl - så er det naturligvis en anden sag - men pga. funktionalitet - tjaaaah.....  :)

/nuno
Avatar billede brock Nybegynder
25. oktober 2000 - 12:27 #20
Det kan jeg kun give dig ret i - helt enig -> hvis man skal kode er det faktisk en koders pligt at sætte sig ind i de forskellige browsers - Mit udfald mod netscape var også mere ment provokerende end jeg kan tage en saglig diskussion om den. Det som irriterer mig mest er dog dens lidt omstændige tabelhåndtering + det der med frames i procenter -> at så få tilpasset divers layers/iframes kan man jo passende læse om på steinmans side... Det jeg efterlyser er vel en gensidig adoptering fra hhv ie/ns så de tog implementer hinanden - Det vil jo være en god nyhed at to browsere arbejder mod samme mål istedetfor at bekrige hinanden og blive mere og mere forskellige. Jep. det var vist det!

venlig hilsen

Brock :)
Avatar billede nixen Nybegynder
25. oktober 2000 - 12:30 #21
Hørt! Selvom jeg er mest til IE ville det være super-lækkert om man kunne blive enige om en fælles (W3C, f.eks) standard. Og så rent faktisk også benytte den...
Avatar billede olebole Juniormester
25. oktober 2000 - 22:57 #22
Det er jo skønt at høre, vi slaet ikke er så langt fra hinanden, som det kunne lyde ;o)
Tabel-håndteringen pisser mig ikke så meget af, da jeg synes, den er til at arbejde sig udenom, hvis man kender til \'særhederne\' - frames-fortolkningen derimod er en sand bitch!
For det ikke skal være løgn, kan man ikke engang bruge den procent-fortolkning, NS har under Windows, når man ønsker sættet vist under MacOS! :o(
Vi arbejder på Framfab for tiden med at afkode denne særhed, men foreløbig uden held!
NS6 ser til gengæld meget interessant ud - den tror jeg, der kan blive en monster-browser ud af, selvom vi selvfølgelig får en ekstra DOM, vi skal tage højde for i en periode...vi kan idet mindste ikke brokke os over, vi ikke får mange \'gaver\'! *LOL*

Det lille SSI-indianertrick fandt jeg på, da jeg på et tidspunkt blev bedt om at lave en dynamisk menu i et frameset, hvor menuerne skulle komme til syne i en frame, hvori der blev loaded \'fremmede\' dokumenter. Det er et meget godt eksempel på at:

    ***  Alt er muligt...det umulige kræver bare lidt mere fantasi - og koster derefter!  ***

Nej, selvfølgelig har HTML ikke spor med programmering at gøre...udtrykket er vist blot et udslag af dårlig valgt \'daglig-syntaks\' ;o))
/mvh
Avatar billede nuno Nybegynder
26. oktober 2000 - 10:38 #23
YEAH!!!!!!!!

In a perfect world ville kun browsere der overholder een og samme standard være tilladt - det er jo faktisk også det det hele lægger op til eftersom HTML jo er en standard!! Så hvorfor ikke sørge for at også clienterne, der skal vise denne standard, er standardiserede!

...hmm - mange standarder i forholdsvis lidt tekst - men jeg håber pointen gik igennem.

/nuno
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