• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

zwei Iframes aber nur eins laden lassen (je nachdem ob JS aktiviert ist oder nicht)

nosrcipt

New member
Hallo ich habe ein Problem das ein wenig tricky ist.

Ich möchte ein IFRAME einbinden. Ich habe aber zwei zielseiten, einmal eine Javascript optimierte und einmal eine ohne Javascipt.

Werde also beide einbinden, möchte nur eines anzeigen lassen, je nachdem, ob der user JS hat oder nicht.

Die scheinbare Lösung, die überall im Internet steht habe ich dafür auch schon gefunden, jedoch wird mit "display:none" das IFRAME trotzdem geladen. Mir sind aber gute Ladezeiten sehr wichtig, weshalb das also gar nicht in Frage kommt.

Hat jemand eine Idee?

Bin echt verzweifelt. Freue mich über Lösungen oder Lösungsansätze



PS: Hier den oben erwähnten Ansatz, der mit display:none arbeitet.

HTML:
    <script type="text/javascript">document.documentElement.className += ” js”;</script>
HTML:
    #mein-javascript-modul{/* Design ohne Javascript hier */}
    .js #mein-javascript-modul{/* Design mit Javascript hier */}
gefunden:hier von 2008 also schon ein wenig älter.
 
Du bindest nur das iframe ein, das für Browser OHNE JS optimiert ist. Ist JS jedoch aktiviert, änderst du das src-Attribut und verweist das iframe auf die Seite für Browser mit aktiviertem JS: document.getElementById("ID des iframes").src = "browser-mit-aktiviertem-js.html";
 
Irgendwie funktioniert das nicht.

Wo liegt mein Fehler?

HTML:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>iframe test</title>

 <script> document.getElementById("test").src = "https://www.ixquick.de ";</script>

</head>

<body>

<iframe id="test" align="center" width="100%" height="600px" frameborder="0" src="https://www.google.de"></iframe>

</body>
</html>
 
Zuletzt bearbeitet:
Da das Skript vor dem iframe geladen wird, existiert zu dem Zeitpunkt noch kein Element mit der ID. Das kannst du beheben, indem du das <script> hinter dem iframe einbindest oder (die übliche Vorgehensweise)
Code:
if(document.addEventListener){
  document.addEventListener("DOMContentLoaded", changeIframeSrc);
}
else if(document.attachEvent){
  document.attachEvent("onload", changeIframeSrc);
}
else{
  alert("Something's gone wrong...);
}

function changeIframeSrc(){
  document.getElementById("test").src = "https://www.ixquick.de ";
}
verwendest.

- - - Aktualisiert - - -

Wenn etwas nicht funktioniert, findest du Hinweise auf den Fehler übrigens in der Webentwickler-Konsole.
 
Zurück
Oben