20. september 2004 - 15:10Der er
24 kommentarer og 2 løsninger
Links i nyt vindue (XHTML)
Hej
I HTML kan man blot skrive <a href="uri" target="_blank">, hvis man vil have linket til at åbne i et nyt vindue. Med XHTML er 'target' blevet afskaffet, så man må bruge en anden metode. Jeg er ikke helt tilfreds med det, jeg har fundet frem til.
1. <a href="#" onclick="window.open('uri')"> (hvilket vel er hvad de fleste gør). Ulempe: Det virker ikke til fx mobiltelefoner.
2. <a href="uri" onclick="window.open('uri')"> Ulempe: IE tror den både skal åbne i samme OG i et nyt. I mozilla virker det fint.
Det jeg leder efter er altså noget, der virker helt ligesom 'target="blank"', men som er lovligt i XHTML. Håber det findes.
Hvis du vil bruge target på en hjemmeside, så bruger man transitional xhtml 1.0 i stedet for strict xhtml. Længere er den ikke. Hvorfor vil du så gerne bruge strict? Det er ikke spor finere eller bedre at bruge strict, tværtimod er det ufint at forsøge at lave noget som ikke er tilladt i den pågældende doctype. Man bruger den doctype, som svarer til det man skriver. Du kan jo bruge skrive i transitional på samme måde som strict, dvs. bruge css til formatering, undlade at bruge tags, der er på vej ud og så nøjes med at bruge det fra transitional, som ikke er tilladt i strict.
knudgert, tror ikke helt du har forstået hvad det handler om. Pointen er, at jeg gerne vil have en bestemt funktionalitet. Den spørger jeg så hvordan man opnår indenfor xhtml (1.1 iøvrigt).
Om roenvings idé er gråzone skal jeg ikke kunne sige, da jeg ikke ligefrem er JS-haj.
Nej, jeg har ikke misforstået noget, du ønsker noget som ikke er tilladt i xhtml 1.1, så hvorfor vil du så gerne bruge xhtml 1.1?
Hvis du køber en bil med dieselmotor, så kan den ikke køre på benzin. Tilsvarende ønsker du at bruge nogen ting, som ikke er tilladt i xhtml 1.1, så må man enten undlade at bruge det eller også bruge en doctype, som tillader det. Det jeg siger er at du skal bruge den doctype, som svarer til det du ønsker at bruge. xhtml 1.1 har endvidere den ulempe, at du ikke kan servere den på den rigtige måde, da IE ikke forstår det (skal sendes som xml og ikke som text/html), se iøvrigt min kommentar i http://eksperten.dk/spm/506711
Jeg er principielt helt enig med knudgerts betragtninger, men det var da lidt sjovt om man kunne snyde browseren, så den slags ideer skal da testes grundigt af, specielt i de lidt tyndere browsere, som ikke bruger 9/10 af deres tid til at undersøge, om kodeskriveren er en spasser eller orangutang !-)
knudgert, du siger altså, at det ikke er muligt, dels at udfylde href="" med uri'en og samtidig fortælle browseren, at den skal åbne linket i et nyt vindue - i XHTML? Så er det jo også et svar på mit spørgsmål.
Mht doctype: Det er muligt at man bør anvende strict i stedet for 1.1. Men jeg er lodret uenig i, at man bør gå længere tilbage i doctypen for at få sine funktionaliteter. Hvis tingene skal udvikle sig bør man jo finde en måde at gøre tingene på, som er lovlige indenfor det nye, altså xhtml.
Man bruger den doctype som passer til det man vil bruge på siden, der er ikke tale om at buge noget gammeldags.
Så ønsker man at bruge target på en side, så bruger man transitional xhtml 1.0. transitional og strict xhtml er udviklet på samme tid, så det er lige tidsvarende, i transitional er blot tilladt nogle ting, som man ikke længere anbefaler at bruge.
xhtml 1.1 er nyere, men skal det bruges korrekt, så er tiden ikke til det endnu, da det ikke er understøttet af IE.
Iøvrigt tingene udvikler sig også og det er derfor at man har fjernet target i strict/xhtml 1.1, det bør være op til brugeren af siden at bestemme om man ønsker en side skal åbne i et nyt vindue eller ej.
Det er jo ikke fjernet. Man skal bare gøre det med onclick i stedet.
Og det bør ikke nødvendigvis være op til brugeren. Nogle steder er det tværtimod irriterende for brugeren, at højreklikke og trykke 'åben i nyt vindue' (IE) på hvert eneste link. Men er selvfølgelig enig i at det skal bruges med omtanke.
Mht til doctype, så er det nogengange nødvendigt at køre så strict som muligt, fx fordi det virker bedre på mobiltelefoner (hvilket er tilfældet her).
Muligheden for terget er fjernet, man kan så bruge en javascriptløsning i stedet for (men hvad så med dem, der ikke ønsker at kunne bruge javascript i deres browser?)
Hvis det skal bruges til mobiltelefoner, så laver man css specifikt til handheld, således at indholdet tilpasses eftr hvilken hardware siden ses på (men derfor er target stadig ikke tilladt i xhtml 1.1 eller strict (x)html).
-- men det, knudgert gør opmærksom på, er, at xhtml 1.1 er en afart af xml, som ikke nødvendigvis er afhængig af programmer, som også kender html, hvilket kan betyde, at html-attributter ikke giver en mening, hvis man f.eks. bruger en doctype, som ikke er kompatibel med html, så den opmærksomhed skal man også have med ...
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.