I Safari med frames funkar ej target?

Tråden skapades och har fått 9 svar. Det senaste inlägget skrevs .
1

Tjo!

Sitter med en sajt som använder frames (och som av olika skäl måste göra det). Den är uppdelad i 3 frames, med en meny i vänsterkanten, brödtext i mitten och annonser i högerframen.

I mitten har jag en knapp som använder target="_parent" för att man alltid skall kunna klicka på den för att komma till startsidan (dvs till index.html som innehåller frameseten.

I PC och Mac-versionerna av Netscape och IE funkar det fint: Oavsett om man ser alla tre framesen i webbläsarens fönster eller enbart mittenframen (sidorna i den kan öppnas separat för utskrift eller hittas ibland från Google) så laddas alla tre framesen med menyn, startsidan och annonserna på rätt ställen.

MEN i Safari funkar det inte då de tre framesen syns och man klickar på länken till startsidan i mittenframen. Det som händer är att index.html då öppnas i mittenframen, medan vänster och höger frame ligger kvar. Resultatet är alltså att min sajt plötsligt har 5 öppna frames...

Vet nån om det är Safari som brister här eller jag själv? Går det att komma runt problemet?

En tanke är att jag måste använda doctype för frames för att Safari ska fatta. Jag har idag DTD XHTML 1.0 Transitional för alla enskilda sidor, men DTD XHTML 1.0 Frameset för index-sidan med frameset-elementen. Mina test tycks dock inte ge särskilt mycket bättre resultat oavsett vilket.

Hela sajten är validerad och godkänd av W3C så jag är ganska vilsen vad som kan vara fel här...

_top?

  • Medlem
  • Karlstad
  • 2005-11-17 08:29

_parent öppnar sidan (filen) i "parent" frameset, dvs om du har t.ex. nästade framesets så öppnar den inte i hela fönstret.
_top öppnar däremot i hela fönstret, så det är nog det du letar efter.

Men vad du troligen också behöver är ett script som sätter in några rader i alla filer du har så att de ALLTID öppnar i den miljö de ska synas i. Om någon hittar en enskild sida från din sajt i en sökmotor och klickar länken, så kommer annars den sidan att öppnas UTAN ditt frameset och troligen kommer folk inte att kunna navigera, och/eller sidan blir obegriplig på annat sätt.

Därför finns det t.ex. Framejammer, en extension för Dreamweaver att ladda ner gratis här:
http://www.pawluk.com/public/dw/dwfset.htm?dw.htm~fmain@Jammer

Använder du inte Dreamweaver, så finns det säkert liknande scripts tillgängliga på t.ex. dynamicdrive.com

Hmmm... tack för svar, men jag använder inte nästade framesets och _parent funkar i alla andra webbläsare så att script ej behövs. Då öppnas allt på rätt sätt, så som ni säger.

Bara Safari krånglar...

Alternativet _top öppnar ju ett nytt fönster och det vill jag inte.

Nu har jag installerat om Safari, tömt alla cachade filer manuellt, kör i debug-läget och testar mig fram och det verkar funka ibland, så jag undrar om det inte är Safari som buggar ändå....

Ett annat alternativ är att namnge den ram som ska användas. Det kan inte gå fel

target = "ramnamn"
  • Medlem
  • Karlstad
  • 2005-11-17 11:02

Tror du missförsår:

_top ska inte öppna ett nytt fönster, utan "blåsa rent" det existerande och ersätta med vadhelst du länkar till, dvs en vanlig sida eller ett frameset i SAMMA fönster. Har du verkligen testat? Tror du mig inte, så kolla här: http://www.w3schools.com/tags/tag_a.asp

Dessutom: Scriptet jag nämnde har inte direkt med din fråga att göra, men närapå: Låt säga att du har filen foo.html som ska öppna i en av framesen i framesetet. När din sajt blivit listad av sökmotorer, så kan folk hitta den filen. Klickar dom länken, så kommer foo.html att öppnas för sig själv, dvs helt utan framesetet runtomkring. Men med scriptet så kommer foo.html att hämta framesetet och lägga sig på rätt plats.

Danne: Ja, jag skrev för nsabbt. Jag tänkte _blank där och du har helt rätt att _top funkar bäst. Men problemet är att min länk/knapp skall finnas både i ett färdigt frameset där den skall länka tillbaka till utgångsläget med 3 frames i ett frameset, med meny+brödtext+annonser.

Men i vissa fall finns knappen på sidor som ligger utanför frames, alltså som enskilda sidor, hittade via nån sökmotor, etc. Då skall länken tillbaka till framesetet funka lika bra, vilket jag inte riktigt får att funka. _parent och _top ger var för sig negativa följder i Safari och/eller andra webbläsare.

morgan: Ja, jag inser vad scriptet gör, men det funkar vad jag ka nse bara om sidorna är lösryckta ur framesetet men inte om det redan finns frameset? Jag måste nog testa ett tag till är jag rädd....

Jag återkommer alltså!

  • Medlem
  • Karlstad
  • 2005-11-17 17:27

Nu vill jag ju inte sparka nån som ligger, men i alla fall....

Man SKA INTE använda framesets om det inte är alldeles, alldeles, fullkomligt, totalt omöjligt att lösa ett jobb på annat sätt. Jonas' problem är en utmärkt demonstration av hur krångligt det blir, och hur en "lösning" till ett problem skapar ett nytt hinder.

Jonas: Även om du löser det senaste dilemmat, så garanterar jag att du kommer att stöta på ännu mer bekymmer längre fram så länge du kör med frameset. Så ta ett råd: Släng framesetet åt helevet medan tid är, och gör vanliga "flat pages". Vill du kunna inkludera och enkelt byta ut vissa delar av sidan (ungefär som en frame, alltså), så testa includes istället.

Läs detta: http://apptools.com/rants/framesevil.php

Ursprungligen av Danne V:

Nu vill jag ju inte sparka nån som ligger, men i alla fall....

Man SKA INTE använda framesets om det inte är alldeles, alldeles, fullkomligt, totalt omöjligt att lösa ett jobb på annat sätt. Jonas' problem är en utmärkt demonstration av hur krångligt det blir, och hur en "lösning" till ett problem skapar ett nytt hinder.

Jonas: Även om du löser det senaste dilemmat, så garanterar jag att du kommer att stöta på ännu mer bekymmer längre fram så länge du kör med frameset. Så ta ett råd: Släng framesetet åt helevet medan tid är, och gör vanliga "flat pages". Vill du kunna inkludera och enkelt byta ut vissa delar av sidan (ungefär som en frame, alltså), så testa includes istället.

Läs detta: http://apptools.com/rants/framesevil.php

Hear, hear!

Det finns även ett till (blivande) problem nu när webben börjar migrera mot semantisk markup och uppdelning av utseende, struktur och beteende, nämligen att attributet "target" försvinner ur XHTML. Det finns definierat i 1.0 Transitional, men inte i övriga versioner. Ingen anledning till panik dock, eftersom attributet för all framtid kommer att vara tillgängligt via DOM där det hör hemma, men det ska alltså i fortsättningen hanteras via JS. Knöligt javisst, men en positiv sidoeffekt blir väl att framtida frames-fetischister tänker efter ordentligt och kanske väljer ett bättre upplägg i stället...

Ok, jag håller med - och inte....

Mina sidor använder frames eftersom jag tycker det är enklare att uppdatera t.ex en meny på det viset snarare än att behöva ändra samma meny på alla sidor eller använda nån slags scriptlösning, där kompatibiliteten inte är 100%.

Sen kan jag inte använda serverscript eftersom sidorna även måste funka offline, på CD, osv.

Tro mig, jag har prövat det mesta, men funnit att en enkel html-lösning med frames är det som funkar bäst hos mina besökare. Är medveten om att jag får vissa knepiga "buggar" på köpet, men det får jag leva med.

Mitt enda (?) problem i dagsläget är att mina sidor fastnar i frames i frames i frames (osv) vilket skapar lite oreda. Jag har inte lyckats lösa det till fullo, men target_"parent" funkar nästan jämt och sen får besökarna lösa resten själva.

Håller dock på att se över detta så att jag i framtiden kan använda ett bättre system. Dock är det inget jag längtar efter att pilla med just nu...

1
Bevaka tråden