Externe links in een nieuwe pagina openen, done of not done?

Pagina: 1
Acties:
  • 116 views sinds 30-01-2008
  • Reageer

  • Zoefff
  • Registratie: September 2001
  • Laatst online: 01-05 10:37
Momenteel ben ik met een website bezig waar ik ook een aantal links naar andere, externe pagina's zet. Voor deze site houd ik XHTML 1.0 Strict aan (ik had ook HTML 4.01 Strict kunnen nemen, maar dat doet er in deze discussie even niet toe).

Zoals jullie vast wel zullen weten mag je in beide bovenstaande doctypes het attribuut "target" niet meer gebruiken. Dit attribuut is nog afkomstig uit de frames tijd, maar wordt nu nog altijd gebruikt om links te openen in een nieuw venster. Het is nu echter verdwenen, met als motivatie dat je het aan de gebruiker (of de browser) moet overlaten of hij een link in het bestaande venster of in een nieuw venster wilt openen.

Zelf zet ik daar m'n vraagtekens bij. Aan de ene kant begrijp ik het wel, het is bijvoorbeeld vreselijk irritant als de popups te pas en te onpas om je oren worden geslingerd, of dat iedere pagina in een nieuw scherm opent. Maar aan de andere kant kan het soms ook heel praktisch zijn.

Neem bijvoorbeeld een pagina waarbij je met een klik op de knop een soort hulpschermpje met extra info in een popup hebt, is best handig. Of zoals ik in het begin al stelde, links naar externe pagina's. In principe open ik die altijd in een nieuw scherm of nieuwe tab, omdat het gewoon een nieuw iets is. Als zo'n pagina in mijn hudige scherm opent is dat alleen maar vervelend omdat ik dan van de oorspronkelijke site af ben.

Nu hoor ik jullie al zeggen "maar de gebruiker kan toch zelf een link in een nieuwe pagina of tab openen?". Dat klopt, maar in de praktijk blijkt dat veel mensen dit niet doen of niet weten hoe ze dit moeten doen. Ikzelf open externe linkjes vrij eenvoudig met een klik van m'n middelste muisknop, in FireFox opent de link dan in een nieuwe tab. Maar, veel mensen die ik spreek weten niet dat het kan. Net zoals dat de doorsnee gebruiker rücksichtslos op een linkje klikt, in plaats van met z'n rechtermuisknop en kiest voor "open in new window", laat staan dat 'ie weet dat je ook shift ingedrukt kan houden om een nieuw venster te openen.

Dan zijn er ook nog de browsers. Het zou natuurlijk mooi zijn als die zelfstandig kunnen ontdekken of een linkje binnen de huidige site linkt, of naar een externe site, en zo bepalen om de pagina al dan niet in een nieuw venster te openen. Voor zover ik weet zijn er echter nog geen browsers of plugins die dit mogelijk maken.

Moraal van dit verhaal is dat ik het in theorie wel eens ben met het W3C, maar dat het in de praktijk toch niet praktisch is, of het mij in ieder geval niet praktisch lijkt. Ik heb er dan ook voor gekozen om op een "vieze" manier toch linkjes in een nieuw venster te openen. Ik misbruik het "rel" attribuut van het element "a" door dit een waarde als "external" mee te geven, en check vervolgens met javascript of de link in een nieuw venster geopend moet worden of niet. De code valideert wel, maar herbergt toch nog de "target" functionaliteit.

Na zo'n lap tekst ben ik heel benieuwd hoe jullie er over denken, en hoe jullie het eventueel oplossen met dit soort javascriptjes, of visuele kenmerken om de gebruiker duidelijk te maken dat het om een externe link gaat. Brand dus maar los :P


FotoblogWerkaandemuur.nlMoestuincursus.nlTwitter


Verwijderd

Ik vind de door jou aangegeven methode, met de javascript, wel het netst. Als je het dan toch wilt gebruiken, doe het dan zo. Want mensen kunnen nog steeds een linkje in een ander venster slepen, zonder javascript werkt het ook, dus je behoudt redelijk veel functionaliteit.

Klanten willen nu eenmaal dat de bezoeker zo lang mogelijk op zijn site blijft. Dat bereik je niet door een link naar een andere website in hetzelfde venster te openen. Dus als je dan toch nieuwe vensters moet openen, dan is de javascript methode het mooist.

Je moet inderdaad niet teveel van bezoekers verwachten. Alleen dat ze een beetje rond kunnen klikken, en dingen als knoppen en een formuliertje kunnen vinden.

De javascript manier is overigens geen vieze manier. Het staat geschreven dat die target attribuut deprecated is, onder meer omdat de functionaliteit ook met scripting bereikt kan worden.

  • André
  • Registratie: Maart 2002
  • Laatst online: 28-04 11:43

André

Analytics dude

Zoefff schreef op maandag 15 augustus 2005 @ 19:54:
Ik heb er dan ook voor gekozen om op een "vieze" manier toch linkjes in een nieuw venster te openen. Ik misbruik het "rel" attribuut van het element "a" door dit een waarde als "external" mee te geven, en check vervolgens met javascript of de link in een nieuw venster geopend moet worden of niet. De code valideert wel, maar herbergt toch nog de "target" functionaliteit.
Dit soort methodes vind ik echt complete onzin. Je wilt valide HTML ombouwen naar non-valid HTML met JS. Dat is pure validator cloaking: je laat de validator iets anders zien dan de gebruiker. Waarom zou je dan uberhaupt willen valideren?
/edit: even een nuance nav Cheatah's bericht: extra functionaliteit toevoegen met JS is prima, maar validatie moet niet het doel zijn.

En om op je punt in te gaan: ik ben het zeker met je eens omdat ik getallen heb gezien over dit fenomeen waaruit blijkt dat je bezoekers langer vasthoudt wanneer je externe links in een nieuw scherm opent. En dan bedoel ik niet dat je eigen site langer openstaat maar dat ze na het bezoeken van die externe site weer verdergaan in je eigen site. Terwijl dit niet het geval zou zijn als je eigen site al 'weg' was. :)

[ Voor 6% gewijzigd door André op 15-08-2005 20:04 ]


  • Zoefff
  • Registratie: September 2001
  • Laatst online: 01-05 10:37
Ik ben het met je eens, daarom noem ik het ook een vieze oplossing, maar goed, hoe zou ik het anders moeten doen? Je houd op deze manier de validator voor de gek, maar anders valideert je hele pagina niet meer, en dat is me dan ook weer een doorn in het oog. M'n pagina's maak ik namelijk altijd volgens de regels, dan laat ik een stom "target" attribuut geen roet in het eten gooien. Volgens mij is het op GoT ook met een javascriptje opgelost trouwens :)


FotoblogWerkaandemuur.nlMoestuincursus.nlTwitter


Verwijderd

Ik vind eigenlijk het netste om gewoon je gebruikers uit te leggen hoe het werkt. Bij sites die erg op accessibility moeten letten heb ik sowieso al vaak een extra pagina, waarin uitgelegd staat dat je bijvoorbeeld met shift een pagina in een nieuw venster opent, in Fx teksten groter kan inzoomen dan in IE, in Opera zelfs de hele pagina kan zoomen etc.

Daar zou je ook een vinkje kunnen zetten om met js die new window functionaliteit al of niet aan te zetten (denk even na wat de default moet zijn), verder eventueel nog dingen om je font color te wijzigen of zelfs een hele andere stylesheet te kiezen

over de js oplossing: je moet natuurlijk niet iets doen als
JavaScript:
1
if (a.getAttribute('rel') == 'external') a.setAttribute('target','_blank');

maar een window.open in de onclick handler doen.

[ Voor 15% gewijzigd door Verwijderd op 15-08-2005 20:40 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:43

crisp

Devver

Pixelated

window.open heeft meer nadelen dan een target attribuut middels DOM toevoegen (bedenk ook dat de DOM tree in feite weinig meer te maken heeft met HTML en dus ook niet gebonden is aan HTML syntax-rules; in de DOM vind je wel meer zaken die je in HTML niet tegenkomt - in die zin is een extra attribuut toevoegen aan een element in de DOM op zich niet fout of 'tegen de regels').
window.open wordt vaak gemaskeerd of afgevangen door 3rd party software en werkt dan dus niet; daarnaast kan een gebruiker dan ook niet meer een window in een tab laten openen (beetje afhankelijk van de implementatie van tabs in de gebruikte browser - sommige extensies kunnen het meen ik wel).

last but not least: geef je gebruiker altijd de keuze; hier op GoT kan je het javascriptje ook 'uitschakelen' ;)

[ Voor 9% gewijzigd door crisp op 15-08-2005 23:05 ]

Intentionally left blank


  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 10-11-2025

OkkE

CSS influencer :+

Persoonlijk als bezoeker vind ik het juist het beste dat alle links in de zelfde pagina openen. Alle links die ik in een nieuwe tab wil open ik in FireFox standaard met Ctrl + Click. Gebruik ik geen Ctrl dan verwacht ik dat de pagina in de zelfde tab opend.

Het is alleen (helaas?) zo dat de meeste bezoekers/gebruikers inderdaad niet eens weten dat er zoiets bestaat als "openen in nieuw venster" ofzo, en juist voor deze mensen is het in mijn ogen wel goed als je externe links opend in een nieuwe pagina.

Ik vind gebruikersgemak en het behouden van bezoekers toch net iets belangrijker als een wel of niet 100% volgens de regels website. Ik ben dan ook voor het gebruik van het genoemde javascript. :)

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


  • Barracuda_82
  • Registratie: September 2001
  • Laatst online: 19-12-2024

Barracuda_82

mkTime(), not war!

Bij mijn weten is het een ongeschreven regel dat interne pagina's in hetzelfde venster openen en externe pagina's in een nieuw venster/tab geopend worden.

Ik doe het zelf ook altijd en in 9 van de 10 websites die ik zie wordt dit ook gedaan. Ik vind het irritant als dit niet zo is.

Als je dan geen target atribuut meer mag gebruiken zou ik een javascript oplossing gebruiken, omdat ik dit wel erg belangrijk vind dat het werkt zoals het hoort.

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Barracuda_82 schreef op dinsdag 16 augustus 2005 @ 09:53:
Als je dan geen target atribuut meer mag gebruiken zou ik een javascript oplossing gebruiken, omdat ik dit wel erg belangrijk vind dat het werkt zoals het hoort.
Officieel in strenge zin gezien, hoort het dus niet zo te werken ;)

Anywee: ik gebruik tegenwoordig steeds vaker een -> achtig pijltje achter een externe link. Afhankelijk van de type site krijgen ze er uitleg bij (hoe te openen in een nieuw venster).

Een mooi alternatief kan natuurlijk zijn om de gebruiker de mogelijkheid te geven om externe links in een nieuw window / tab te laten openen :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


  • Clay
  • Registratie: Oktober 1999
  • Laatst online: 25-02 11:17

Clay

cookie erbij?

* Clay stemt voor een internetbrowsvaardigheidbewijs :+

Als ervaren gebruiker zal je idd weten wat je browser wel en niet kan, en ik bepaal ook liever zelf wel of ik een link in hetzeflfde scherm, een tab of nieuw window open, maar er zijn idd genoeg mensen die er totaal geen kaas van hebben gegeten, en letterlijk niet weten dat een button in de startbalk correspondeert met een geopend window. Als elke site alle externe links in een nieuw window opent heeft zo'n gebruiker dus in de kortste tijd een berg geopende windows, en moet die ze ook weer allemaal apart gaan sluiten, schiet niet echt op imo.

De back knop is een stuk bekender, dus ik ben toch echt voor links die in hetzelfde window openen.
Ik misbruik het "rel" attribuut van het element "a" door dit een waarde als "external" mee te geven, en check vervolgens met javascript of de link in een nieuw venster geopend moet worden of niet. De code valideert wel, maar herbergt toch nog de "target" functionaliteit.
mja, dat "misbruiken" valt wdbt nog mee. Ik had zelfs graag gezien dat de script tag net als de link een "media" attribuut had gehad. Per medium kan script namelijk zeer toepasselijke functionaliteit toevoegen; bv juist dit soort dingen als clicks op links met een rel opvangen.

Ik ben er bv ook voor dat popuplinks (als die echt nodig zijn) ook gewoon de url in de href hebben, en een rel aangeeft wat voor soort popup het worden moet.

[spam] ooit nog een artikel over geschreven [/spam]

Instagram | Flickr | "Let my music become battle cries" - Frédéric Chopin


  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-04 17:38
Als alternatief zou je ook, zoals bij google.images bijvoorbeeld, 1 pagina van je website bij een externe link een klein framepje bovenaan kunnen laten zien. Dan weten de niet-nerd mensen ook hoe ze terug moeten komen op jouw site en willen ze dat niet, dan sluiten ze het frame (of laat dat automatisch gaan oid). Heb je geen heel window erbij, maar een net klein balkje als in een bronvermelding.

Verder vind ik het persoonlijk minder irritant om een extra schermpje/tab erbij te krijgen, dan dat ik via een website na een externe site ga, denk van dit is het niet wat ik zoek *close*. En shit, andere website ook weg want het was hetzelfde scherm. Of dat je geforward bent en je de backbutton honderd keer achter elkaar moet klikken (ja, of het kleine pijltje ernaast om ineens meerdere stappen terug te gaan :P)

  • Zoefff
  • Registratie: September 2001
  • Laatst online: 01-05 10:37
Verwijderd schreef op maandag 15 augustus 2005 @ 20:38:
Ik vind eigenlijk het netste om gewoon je gebruikers uit te leggen hoe het werkt. Bij sites die erg op accessibility moeten letten heb ik sowieso al vaak een extra pagina, waarin uitgelegd staat dat je bijvoorbeeld met shift een pagina in een nieuw venster opent, in Fx teksten groter kan inzoomen dan in IE, in Opera zelfs de hele pagina kan zoomen etc.

Daar zou je ook een vinkje kunnen zetten om met js die new window functionaliteit al of niet aan te zetten (denk even na wat de default moet zijn), verder eventueel nog dingen om je font color te wijzigen of zelfs een hele andere stylesheet te kiezen
Voor grote sites als GoT of andere communities (met users, preferences, etc.) kan dat prima werken, maar voor kleinere sites (de site waar ik het in de startpost over heb bestaat uit maximaal 10 pagina's) is het natuurlijk niet te doen.
BtM909 schreef op dinsdag 16 augustus 2005 @ 10:07:
[...]
Anywee: ik gebruik tegenwoordig steeds vaker een -> achtig pijltje achter een externe link. Afhankelijk van de type site krijgen ze er uitleg bij (hoe te openen in een nieuw venster).
Dat is inderdaad nog best een leuke oplossing, mits de bezoeker wel weet wat het pijltje betekend. Ze gebruiken dit soort plaatjes bijvoorbeeld in de wikipedia, maar ik begrijp nu eigenlijk pas wat de betekenis er van is :X
Clay schreef op dinsdag 16 augustus 2005 @ 10:36:
mja, dat "misbruiken" valt wdbt nog mee. Ik had zelfs graag gezien dat de script tag net als de link een "media" attribuut had gehad. Per medium kan script namelijk zeer toepasselijke functionaliteit toevoegen; bv juist dit soort dingen als clicks op links met een rel opvangen.

Ik ben er bv ook voor dat popuplinks (als die echt nodig zijn) ook gewoon de url in de href hebben, en een rel aangeeft wat voor soort popup het worden moet.

[spam] ooit nog een artikel over geschreven [/spam]
Dat vind ik geen spam, want het artikel sluit goed aan op waar we het hier over hebben :P

Sterker nog, ik vind het een uitstekend artikel. De oplossing voor externe links gebruikte ik min of meer al, maar ook foto-gallery popups kunnen natuurlijk prima op deze manier gefixt worden. De T.net gallery foto's linken bijvoorbeeld naar "javascript:gal_openfoto(63804,507,275)", die foto's openen in een (eigen) nieuw venster of tab is zo onmogelijk, maar met jouw script word dit weer mogelijk, zonder de popup-functionaliteit te verliezen :)


FotoblogWerkaandemuur.nlMoestuincursus.nlTwitter


  • Ma_rK
  • Registratie: Maart 2002
  • Laatst online: 12-07-2025
Ik valideer niet meer XHTML strict en dat is enkel en alleen omdat de mannen bij W3C van mening zijn dat je het browser pad niet mag onderbreken. De ervaren internet gebruiker zal een nieuw venster bijna altijd openen in een nieuw tab en dat kun je met een target toch niet aangeven. De minder ervaren gebruiker moet je maar dwingen om langer op je pagina te blijven door externe links in een nieuw venster te openen.

Oftewel, de ervaren internetter heeft er nagenoeg geen last van en de minder ervaren internetter blijft langer op je site hangen.

Ben geen fan van het gebruik van javascript voor het openen in een new window. Dat is idd gewoon validator cloaking. Met javascript weten sommige bouwers het ook nog voor elkaar te krijgen dat je zelf niet kunt aangeven hoe hij geopend wordt (in nieuw tab of nieuw window) zoals ook startpagina.nl hier vroeger moeite mee had.

Voor mij dus geen XHTML strict meer maar das mijn verhaaltje.
Pagina: 1