Link-Element per insertBefore einfügen
Pascal Krause
- javascript
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
Habs geschafft. Trotzdem Merci
Hallo,
Habs geschafft.
Für's Archiv: wie?
Gruß
Kalk
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