Pascal Krause: Link-Element per insertBefore einfügen

Hallo

Ich versuche vor (oder nach) einem Link-Element ein weiteres via JavaScirpt einzufügen.

Ich habe schon paar Sachen versucht, aber es klappt nicht. Was mache ich falsch?

  
var linkelement = document.getElementById('mobilecss')  
linkelement.insertBefore('<link rel="stylesheet" href="mobilecss2.css" media="only screen and (min-width: 480px) and (max-width: 540px) and (-webkit-min-device-pixel-ratio:0)">', linkelement);	  

Vielen Dank für eure Hilfe!
Pascal

  1. Habs geschafft. Trotzdem Merci

    1. Hallo,

      Habs geschafft.

      Für's Archiv: wie?

      Gruß
      Kalk

      1. Hallo,

        insertBefore nimmt kein HTML-Code an, sondern ein DOM-Elementknoten. Außerdem wird erwartet, dass man vom Elternknoten ausgeht und ein Referenzelement angibt. (Füge Element E als Kindelement von Knoten P ein, und zwar vor dem existierenden Knoten R.)

        Zwei Möglichkeiten:

        1. Kein HTML-Code parsen, sondern DOM-Knoten erzeugen und einfügen:

        var link = document.createElement('link');  
        link.rel = 'stylesheet';  
        link.href = 'mobilecss2.css';  
        link.media = '...';  
        var existingLink = document.getElementById('mobilecss');  
        existingLink.parentNode.insertBefore(link, existingLink);
        

        2. HTML-Code verwenden und mit insertAdjacentHTML parsen und einfügen lassen:

        var existingLink = document.getElementById('mobilecss');  
        existingLink.insertAdjacentHTML('beforebegin', '<link rel="stylesheet" href="mobilecss2.css" media="only screen and (min-width: 480px) and (max-width: 540px) and (-webkit-min-device-pixel-ratio:0)">');
        

        Mathias