Inkludieren einer Seite und JavaScript aufrufen
sadadsa
- javascript
Hallo,
ich möcht meine Seite in einer anderen Seite inkludieren und die Größe je nach Browser einstellen. Nur leider wird der iframe nicht anhand seiner ID gefunden. (<body onload="return window_onload()">) Wenn ich dieses im Body Tag schreibe und mein Skript in die Function schreibe funktioniert es, nur leider komme ich nicht an das Bodytag auf dem Server dran.
1. Wie komm ich an das IFrame.style.height dran?
2. Kennt jemand einen anderen weg eine Seite zu inkludieren.
Danke
<div >
<script type="text/javascript">
// <![CDATA[
if (navigator.appName.indexOf("Explorer") != -1) {
if (navigator.appVersion.indexOf("6.0") != -1)
hoehe = document.body.clientHeight;
else if (navigator.appVersion.indexOf("7.0") != -1)
hoehe = document.documentElement.clientHeight;
else
hoehe = 750;
}
else {
hoehe = window.innerHeight;
}
alert(hoehe);
window.document.getElementById('portal').style.height = hoehe + 'px';
// ]]>
</script>
<iframe src="http://www.domain.de/irgendwo/" width="780" frameborder="0" id="portal"></iframe>
</div>
- Wie komm ich an das IFrame.style.height dran?
indem du sie irgendwo überhaupt definierst (entweder über das style-objekt selbst oder über ein inline-stylesheet)
- Kennt jemand einen anderen weg eine Seite zu inkludieren.
mit klassischen include-techniken - mich wundert, dass du das beim studieren der faq übersehen hast ;)
wenn ich mir eine anmerkung erlauben darf:
deine browserweiche ist defekt, da du angaben vergleichst, denen du nicht trauen kannst - frage bei browserweichen stehts, was ein browser kann (und schätze daraus, wie er heisst - denn dabei wird er sein bestes geben) - nicht wie er heisst (denn da wird er "immer" lügen)
zudem ist wie erwähnt der frameansatz nicht grade der beste zum einbinden anderer inhalte
wäre praktisch, wenn du genau beschreibst was du eigentlich vorhast
[latex]Mae govannen![/latex]
- Wie komm ich an das IFrame.style.height dran?
- Kennt jemand einen anderen weg eine Seite zu inkludieren.
Sind beide Ressourcen unterhalb der gleichen Domain verfügbar? Ansonsten bekommst du mit JS ohnehin Probleme (same origin policy)
Siehe Foren-FAQ, Quelltext auslagern
if (navigator.appName.indexOf("Explorer") != -1) {
if (navigator.appVersion.indexOf("6.0") != -1)
hoehe = document.body.clientHeight;
else if (navigator.appVersion.indexOf("7.0") != -1)
hoehe = document.documentElement.clientHeight;
else
hoehe = 750;
}
else {
hoehe = window.innerHeight;
}
Das ist Stuss. Browsersniffing ist eigentlich nie eine gute Idee, frage stattdessen ab, ob die von dir in den einzlnen Zweigen verwendeten Eigenschaften verfügbar sind.
z.B. (habe in diesem Beispiel "deine" Eigenschaften benutzt, ohne deren Sinn zu prüfen)
if (document.documentElement && document.documentElement.clientHeight) {
hoehe = document.documentElement.clientHeight;
}
else if (window.innerHeight) {
hoehe = window.innerHeight;
}
else if (document.body && document.body.clientHeight) {
hoehe = document.body.clientHeight;
}
else {
hoehe = 750;
}
Cü,
(<body onload="return window_onload()">) Wenn ich dieses im Body Tag schreibe und mein Skript in die Function schreibe funktioniert es, nur leider komme ich nicht an das Bodytag auf dem Server dran.
Du musst JavaScript-Code, der onload ausgeführt werden soll, nicht onload-Attribut des body-Elements unterbringen, du kannst genauso im JavaScript schreiben:
window.onload = function () {
// Hier kommst du zuverlässig mit getElementById an das iframe-Element heran.
};
Mathias