Wechseln der URL bei object tag in allen Browser ermöglichen?
Thomas
- javascript
Hallo Leude,
Habe einen object tag der eine datei einbindet (hier eine html-datei)und will die datei dynamisch per Javascript durch eine andere auswechseln lassen. Hinweis: Ich will kein iframe benutzen da der nicht strict ist und in Zukunft so oder so entfällt.
Hier ein Beispiel-script:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<title>Object-Tag-Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<script type="text/javascript">
function Wechsel(x) {
// bei iframe zu gebrauchen:
// document.getElementById("Inhalt").setAttribute('src', x); // funktioniert
// bei object zu gebrauchen:
// document.getElementById("Inhalt").removeAttribute('data'); // ist überflüssig da setAttribut automatisch löscht
// document.getElementById("Inhalt").setAttribute('data', x); // funktioniert nicht
// document.getElementById("Inhalt").data = x; // funktioniert nicht
document.getElementById("Inhalt").location.href = x; // funktioniert NUR im MS IE
}
</script>
</head>
<body style="border:none;">
<p>
<a href="javascript:Wechsel('templates/index.html');">Wechsel</a>
<a href="javascript:Wechsel('todo.html');">Wechsel</a>
</p>
<!--
<iframe src="todo.html" width="500" height="300" id="Inhalt" style="border:none;"></iframe>
-->
<p>
<object id="Inhalt" width="500" height="300" type="text/html" data="todo.html" style="border:none;"></object>
</p>
</body>
</html>
Einfach kopiern dateinamen ändern und ausprobieren.
Ich hoffe jemand weiß wie sich das wechseln der Datei bewerkstelligen lässt evt. mit einem Workaround.
Ich hoffe jeodoch auf eine serverlose Lösung da mir der HTTP-Request die ursprungsseite neu laden würde was ich nicht will.
Vielen Dank im Voraus.
MfG
Thomas
PS: Habe herausgefunden wie man den unschönen 3d-Rand (im MS IE) bei per Object eingebundenen HTML-Dateien wegbekommt: einfach in der eingebundenen Datei im body tag style="border:none;" setzen.
Hallo!
function Wechsel(x) {
deinobjektname.location.href = x;
}
</script>
</head>
<body style="border:none;">
<p>
<a href="javascript:Wechsel('templates/index.html');">Wechsel</a>
<a href="javascript:Wechsel('todo.html');">Wechsel</a>
</p>
<object name=deinobjektname id="Inhalt" width="500" height="300" type="text/html" data="todo.html" style="border:none;"></object>
</p>
</body>
</html>
So funktionierts mit opera7 und Mozilla, möglicherweise macht ie5 Probleme, hab ich nicht probiert.
PS: Habe herausgefunden wie man den unschönen 3d-Rand (im MS IE) bei per Object eingebundenen HTML-Dateien wegbekommt: einfach in der eingebundenen Datei im body tag style="border:none;" setzen.
Das ist dochmal eine Info, auf die ich schon lange gewartet habe!
tschüs, jürgen