CRS Webbproduktion
Webbproduktion när den är som bäst

Öppna länkar i nytt fönster, och validera strict

juli 15, 2008 10:56 by Admin

Jag stötte på problem när jag försökte öppna länkar i nytt fönster, och få det att validera XHTML 1.1 Strict. Den klassiska target="_blank" fungerade ju inte, eftersom target inte är giltigt i strict (varken html eller xhtml).

Lite efterforskningar gav mig att jag fick lösa det med Javascript, men exemplen jag hittade satte target på länkarna via javascript, vilket jag ändå tyckte var ett ful-hack. Då använder man ju ändå target, vilket vi ju ville undvika.

Jag modifierade scriptet lite, och lägger istället till ett onclick-event på länkarna, och använder window.open för att öppna. Det är mycket enkelt att använda, kopiera koden, eller ladda ner filen. Bara att länka in javascriptet, och sätta rel="external" på dina länkar, så öppnas dessa i nytt fönster.

Lycka till!

function externalLinks() {
    if (!document.getElementsByTagName) return;
    var anchors = document.getElementsByTagName("a");
    for (var i=0; i<anchors.length; i++) {
        var anchor = anchors[i];
        if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
            anchor.onclick = function(){
                window.open(this.href);
                return false;
            } 
        }
    }
}
window.onload = externalLinks;
  

CRS.External.zip (848,00 bytes)


Kommentarer

oktober 25. 2008 19:11

Johan Hedberg

Sedan att detta inte fungerar är ju sedan en annan sak. Varken i FF3 eller Chrome.

Johan Hedberg

oktober 26. 2008 01:21

Admin

Vad är det du säger? Klart det fungerar. Du måste ha missat något, har du satt rel="external" på länkarna?

Jag använder precis den här koden på en sida, och den fungerar utmärkt i Fx3, IE8 (och IE7 emulerat), Opera (senate) och Chrome

Admin

Lägg till kommentar




  Country flag

biuquote
  • Kommentar
  • Live överblick
Loading