webForumDet fria alternativet

Mozilla-bråk med frames och tillbakaknappen

20 svar · 665 visningar · startad av @nders

@ndersMedlem sedan juni 200032 969 inlägg
#1

Jag har dykt på ett par konstigheter med Mozilla, och jag vet inte om det är vår kod eller Mozilla som är boven.
Förutsättningar: Ganska intensiv applikation, med frames/iframes och en del lager.

* Back-knappen fungerar dåligt. Det händer sällan något när man klickar på back-knappen eller väljer back i högerklicksmenyn. Det gäller oberoende av vilken frame som senast fick nytt innehåll.
* Vid refresh antingen i frame eller helt fönster öppnas ofta fel filer i en eller flera frames. Om man kör shift-refresh återställs framesetet.

Min fråga är alltså:
Någon som känner igen dessa konstigheter, eller ska jag börja jaga runt i koden? Om ni svarar det senare, ge mig gärna tips om var jag kan börja felsöka, om ni har en aning.

Tyvärr har jag ingen URL att ge er, då applikationen för närvarande ligger på en maskin som inte har tillgång till någonting utom det interna nätverket.

Med hopp och vänliga hälsningar,
anders

AsterixMedlem sedan dec. 1999483 inlägg
#2

Har haft liknade problem och jag tror det är Mozilla som spökar.

@ndersMedlem sedan juni 200032 969 inlägg
#3

Jag känner mig nu nödgad att bumpa denna tråd.

Någon som har något att läsa om konstigheter med back- / forwardknapparna och/eller history i Mozilla?

OveRRidEMedlem sedan feb. 200112 078 inlägg
#4

@nders skrev:

öppnas ofta fel filer i en eller flera frames

Det där låter ju lite konstigt. Är det filer som inte brukar/ska öppnas i de ramarna då eller? Isåfall låter det som ett ruskigt fel i Må(z)illa'n.

@ndersMedlem sedan juni 200032 969 inlägg
#5

Är det filer som inte brukar/ska öppnas i de ramarna då eller?

Precis, filer öppnas där de aldrig öppnas annars...

Min meny som normalt ligger i den vänstra framen öppnas i topframen, och i hela vänsterframen ligger kundvagnen och skräpar...

Jag ska se till att fixa ett par skärmbilder bara för att illustrera.

Jag återkommer med det!

mvh

OveRRidEMedlem sedan feb. 200112 078 inlägg
#6

Jag skulle råda dig till att posta koden till det där frameset'et eller åtminstone felsöka den ordentligt. HTML har ju som bekant en rolig förmåga att inte ge felmeddelanden vid syntaxfel, utan snarare fantastiskt skojiga (?) bieffekter.

@ndersMedlem sedan juni 200032 969 inlägg
#7

Posta kod, det vet jag inte om jag vågar. ;)

Så här ser frameset-dokumentet ut:

<html>
<head>
	<title>foobar</title>
</head>
<frameset rows="120,*,0" frameborder="no" border="0" framespacing="0">
  <frame src="top_menu.asp" marginwidth="0" marginheight="0" scrolling="no" noresize name="top">

  <frameset cols="172,*"> 
    <frame src="left_menu.asp" marginwidth="0" marginheight="0" name="menu" noresize scrolling="no">
    <frame src="/main.asp" marginwidth="0" marginheight="0" noresize name="main">
  </frameset>
 
  <frame src="/hidden.asp" marginwidth="0" marginheight="0" scrolling="no" noresize name="hidden" scrolling="no">
</frameset>
<noframes>
	<body bgcolor="#FFFFFF">
	</body>
</noframes>
</html>

I vänsterframen (i left_menu.asp) ligger en iframe, liksom i mainframen. Jag vill gissa att alla konstigheter dyker upp åtminstone delvis på grund av alla dolda iframes och lager och konstiga javascript.

Det värsta av allt är att det är en (flera) webbplats (er) som är gigantiska, och att fixa så all virrvarrkod validerar är omöjligt, det finns helt enkelt ingen som har tid med det. :/

Så om någon hittar något intressant att läsa om fenomenet eller råkat ut för det själva, hojta till!

Mvh

OveRRidEMedlem sedan feb. 200112 078 inlägg
#8

Ligger tillbaka-knapparna inuti dina i-frame's?

@ndersMedlem sedan juni 200032 969 inlägg
#9

Tillbakaknapparna ligger längst upp i webbläsaren, precis under "File" och "Edit"-menyerna. ;)

Det beter sig likadant oberoende av om man använder de knapparna, eller om man trycker på backspace på tangentbordet, eller om man högerklickar och där väljer "back". Det verkar alltså som att något förstör läsarens history.

KlösMedlem sedan dec. 19992 615 inlägg
#10

Min gissning, som flitig Mozilla-användare men helt borta när det gäller webbprogrammering, är att det något javascript som ställer till det.
För hur många menyer, i javascript, har man inte stött på som inte fungerar i Mozilla men fungerar klanderfritt i IE :q

@ndersMedlem sedan juni 200032 969 inlägg
#11

Det skumma är att applikationen fungerar, vad jag vet, klanderfritt i Mozilla i övrigt. Detta trots att det är en lager- och javascriptintensiv applikation som egentligen inte borde fungera. ;)

KlösMedlem sedan dec. 19992 615 inlägg
#12

@nders skrev:

Det skumma är att applikationen fungerar, vad jag vet, klanderfritt i Mozilla i övrigt. Detta trots att det är en lager- och javascriptintensiv applikation som egentligen inte borde fungera. ;)

Så du menar att du har gjort dig oumbärlig genom att koda så fruktansvärt konstigt att ingen annan förstår vad du gjort? Och inte du själv för den delen... :moose
Fungerar allt som det ska var för sig eller blir det "kaka av allt" när det sitter ihop i med en massa frameset? Skala ner/av det och felsök på så sätt är min enda råd...
Jag satt och programmerade en µ-dator för några år sedan och koden godkändes av kompilatorn men själva µ-datorn fick frispel pga att jag gjorde ett hopp på X antal rader kod (mellan olika funktioner/klasser om man ska prata C/C++, dock kodade jag i assembler). Det stod i databladet till µ-datorn att man bara fick göra hopp på Y antal rader, men bara i förbigående, och databladet var på 150-200 sidor så det var lätt att missa.
Jag gick in och körde varje funktion var för sig och de fungerade klanderfritt, men efter att jag flyttat funktionerna så att jag aldrig gjorde hopp på mer än Y antal rader någonsin fungerade allt.
Att µ-datorn ändå inte gjorde det jag ville berodde på att jag gjort en liten tankevurpa, men µ-datorn gjorde iaf det jag sagt åt den att göra ;) :r

Peter SMedlem sedan dec. 20025 483 inlägg
#13

Mitt tips är att fråga bugzilla om den har kännedom om någon liknande åkomma.

:)

@ndersMedlem sedan juni 200032 969 inlägg
#14

Klös skrev:

Så du menar att du har gjort dig oumbärlig genom att koda så fruktansvärt konstigt att ingen annan förstår vad du gjort?

Om det vore så väl... ;)
Från början var det någon fjukig webdesigner som gjorde grundlayouten och allt javascriptigt. Sedan har det gått 4-5 år, och sex eller sju andra utvecklare har pillat och byggt om/vidare. Min kod är bra, det är de andras kod som suger. ;)

Klös skrev:

Fungerar allt som det ska var för sig eller blir det "kaka av allt" när det sitter ihop i med en massa frameset? Skala ner/av det och felsök på så sätt är min enda råd...

Antagligen fungerar allt bättre när det är avskalat. Dock är alla frames mer eller mindre beroende av varandra, så det är inte bara att koppla loss. Då dyker alla javascript och det går inte att testa.

Det fungerar en aning bättre om jag inte loggar in i systemet. Då är det inte lika ofta som felet uppträder. Skillnaden är två iframes som dyker upp när man är inloggad, annars är frames-uppsättningen lik.

Om någon vill ha ett PM med url och kontouppgifter så hojta bara. Jag kan inte lägga ut den informationen här.

Peter S, tack för förslaget, jag letar där. :)

Jag uppskattar verkligen all hjälp. =)

Mvh

Peter SMedlem sedan dec. 20025 483 inlägg
#15

Vilken version av Moz handlar det om? Jag hittade nämligen en kodsnutt på bugzilla som min 1.7.3 (20040910) inte verkar vilja hantera på ett föredömligt sätt. Ladda ned framesetexemplet på https://bugzilla.mozilla.org/show_bug.cgi?id=257498, och testa följande:

1. Klicka på "Content"
2. Klicka på "Middle (HTML)"
3. Klicka på "Content"
4. Testa att använda någon backfunktion

Det går även att framkalla detta beteende på andra sätt än just förfarandet ovan.

Så uppenbarligen verkar det som att i alla fall denna version av Mozilla har problem med relationen mellan frames och history.

:)

@ndersMedlem sedan juni 200032 969 inlägg
#16

Vilken version av Moz handlar det om?

Det är alla versioner jag testat. Tråden startades augusti -02, och jag uppgraderar löpande.

Igår installerade jag den nyaste versionen av Firefox, och problemet finns på precis samma sätt som tidigare. Här på jobbet kör jag Firefox 0.9.3, och saker och ting funkar likadant som hemma.

Jag laddade ner exemplet du länkar till, och mycket riktigt fungerar inte alls back-knappandet som det borde vara tänkt.
Tack för länken, då har jag något konkret att visa min arbetsgivare till att börja med.

Jag letar vidare, och tar gärna emot massor mer inspel :)

Tack!

mvh

@ndersMedlem sedan juni 200032 969 inlägg
#17

I buggrapporten Peter S länkar till står:

Reproducible: Sometimes
Steps to Reproduce:
1. visit some page
2. goto derstandard.at and browse around
3. Click back

Actual Results:
sometimes you are on the page you visited before going to derstandard.at and not
tha actual last page

Gå alltså till http://derstandard.at/ och klicka runt lite. Jag får exakt samma fel som med våra webbplatser! Back-knappen gör inte det den ska, och när man tar sig tillbaka till derstandard med Forward-knappen har vissa frames fel innehåll.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#18

Lite analys:

En frame har namnet top, vilket möjligtvis kan krocka med top som identifierare i javascript.
Vad gör hidden.asp för något? Den verkar inte innehålla någon kod eller liknande och den verkar inte ladda färdigt i Mozilla (Men däremot i IE). Om den används för att hämta data från servern bör du avveckla detta system i förmån för XMLHttpRequest.
Vet inte om det var just denna bugg du tänkte på, men ibland när jag går framåt så frågar den om lösenord. Då jag klickar bakåt vi det tillfälletså ballar ramarna ur.
En möjlig sak jag kom att tänka på var att du(Eller inte du... :) ) kanske har kvar gamla ramreferenser i variabler. Så spara inte en referens som framreref = top.frames["xxx"]; mellan funktionsanrop.
Kolla noga efter dubletter på ramnamn och byt namn på top som sagt.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#19

En annan sak... Vilka filer finns i katalogen js? Det skulle kanske hjälpa om du satte på dirlisting för den.

@ndersMedlem sedan juni 200032 969 inlägg
#20

Tack för titten på vår "hemliga" ;-) webbplats, nitro! :)

Jag tar en liten top-to-bottom-approach på det du skriver.

En frame har namnet top, vilket möjligtvis kan krocka med top som identifierare i javascript.

Hmm, det är sant. Jag ska se om jag kan göra något åt det!

Vad gör hidden.asp för något?

Från början ingenting, den används för att utföra saker som inte syns i applikationen. Kanske behöver man inte ladda den i framesetet då? Eller?

och den verkar inte ladda färdigt i Mozilla

Jag har letat hur länge som helst efter orsaken till att det verkar som att sidan aldrig laddats klart i mozilla. Om detta är orsaken så skickar jag en blöt puss på posten! :-D

Vet inte om det var just denna bugg du tänkte på, men ibland när jag går framåt så frågar den om lösenord. Då jag klickar bakåt vi det tillfälletså ballar ramarna ur.

Det är en av konstigheterna jag märkt ja.

Så spara inte en referens som framreref = top.frames["xxx"]; mellan funktionsanrop.

Jag tror inte att vi gör på det sättet någonstans, men jag ska kolla upp det!

En annan sak... Vilka filer finns i katalogen js? Det skulle kanske hjälpa om du satte på dirlisting för den.

I katalogen js finns en del javascriptfiler. På vilket sätt skulle det hjälpa att sätta på directory browsing?

Återigen, tack så mycket för hjälpen, nitro! :D

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)