in iframe html seite mit layer laden -> javascript fehler!!!
Bogdanov
- javascript
Hallo
sorry für das verplante thema, aber ich weiß net wie ich mich ausdrücken soll!
also ich hab ne seite die einen iframe enthält. in den iframe soll nun ne html seite geladen werden, die mit layern arbeiten muss.d.h. ich hab ein layer erst visible die anderen sind hidden. mit javascript funktionen wie zb
function weiter(){
document.getElementById("Layer1").style.visibility = "hidden";
document.getElementById("Layer2").style.visibility = "visible";
}
so funktioniert die seite für sich super, aber sobald sie in den iframe geladen wird, reagiert er nicht mehr auf die javascript funktionen. ich rufe die funktionen zb über nen link mit javascript:weiter() auf.
Wo ist der Fehler im IFRAME?? wie kann ich in dazu bringen die richtige javascript funktion aufzurufen???
hilfe bitte
schon mal danke
hallo
du ich hab da ein problem mit meinem auto. da ganz vorne war was nicht in ordnung (glaube ich). sonst geht es normal nur wenn ich mit dem zug fahre ist was nicht in ordnung. kannst du mir vieleicht helfen?
will sagen: gib uns bitte mehr als eine wage beschreibung ... etwas quelltext wäre zB gut.
cu
ulli
Hallo,
so sieht ein teil des heads aus:
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>KV-Vergleich Seite 1</title>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
function anzeigen() {
document.getElementById("Layer1").style.visibility = "visible" ;
document.getElementById("Layer2").style.visibility = "visible" ;
}
function weiter() {
document.getElementById("Layer3").style.visibility = "visible" ;
document.getElementById("Familienstand").style.visibility = "hidden" ;
}
function nix() {
document.getElementById("Layer1").style.visibility = "hidden" ;
document.getElementById("Layer2").style.visibility = "hidden" ;
}
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>
</head>
aufgerufen wird die funktion mit <a href="Javascript:weiter()">weiter...</a> ....
es gibt nen paar layer auf der seite.
das funktioniert bis hier hin auch gut.
in der index seite hab ich nen iframe:
<iframe name="hauptframe" scrolling="no" frameborder="0" width="500" height="290" src="welcome_komplett.swf">
</iframe">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="500" height="290">
<param name="movie" value="welcome_komplett.swf">
<param name="quality" value="high">
<embed src="welcome_komplett.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="500" height="290"></embed></object>
</a></td>
in den zu erst nen swf geladen wird. dann wird je nachdem welcher link gedrückt wird eine seite in den iframe geladen.
nur bei der seite mit den layern funktionieren die javascript funktionen nicht mehr. dh. die layer werden nicht mehr visible gemacht.
statt dessen zeigt der iexplore nen fehler :
Zeile: 1
Zeichen: 1
Fehler: Objekt erwartet
Code: 0
so hoffe nun das ihr mir diesmal helfen könnt.
hi,
nur bei der seite mit den layern funktionieren die javascript funktionen nicht mehr. dh. die layer werden nicht mehr visible gemacht.
rufst du die javascript-funktionen denn immer noch aus der seite heraus auf, die jetzt im iframe gleaden ist, oder rufst du sie aus der umgebenden seite heraus auf?
im letzteren fall musst du natürlich noch für den zugriff auf den iframe sorgen, siehe http://selfhtml.teamone.de/javascript/objekte/frames.htm.
gruss,
wahsaga
hi,
also ich rufe die funktion auf der seite mit den layern auf.
in der anderen seite soll sie nur im iframe erscheinen, aber natürlich auch funktionieren.
http://landhaus.esmartweb.com/testsite
da wo zuerst das willkommen läuft ist der iframe. klickt man auf vergleiche kommt die seite.
komisch nur dass nun die weiter() funktion richtig aufgerufen wird um zum 2. formular zu kommen, aber klickt man in dem jumpTo Menue auf verheiratet lädt die Funktion nicht die den Ehepartner Layer anzeigen soll.
alleine geht die seite:
http://landhaus.esmartweb.com/testsite/vergleich_1.htm
gruß
hi,
http://landhaus.esmartweb.com/testsite
da wo zuerst das willkommen läuft ist der iframe. klickt man auf vergleiche kommt die seite.
komisch nur dass nun die weiter() funktion richtig aufgerufen wird um zum 2. formular zu kommen, aber klickt man in dem jumpTo Menue auf verheiratet lädt die Funktion nicht die den Ehepartner Layer anzeigen soll.
ja. mein browser (opera 7) meldet mir in der javascript-konsole:
message: Statement on line 1: Reference to undefined variable: No such variable 'nix'
er kommt also nicht damit klar, wie du die funktion nix() aufrufst.
und wenn man mal in den quelltext schaut, ist das was du da machst auch ganz schön, 'tschuldigung, krank.
du hast ein select-feld mit options á la:
<option value="Javascript:nix()" selected>ledig</option>
und onchange wird dann eine von macromedia generierte funktion MM_jumpMenu() aufgerufen - die ist normalerweise dazu da, um über eine änderung von location auf eine andere seite weiterzuleiten.
das ist schon fehlerhaft, denn hier müsste m.E. die zuweisung an location.href und nicht an location erfolgen - da sieht man, was diese von irgendwelchen editoren generierten funktionen taugen (sofern das original ist, und nicht von dir verschlimmbessert?).
aber anstatt dies mit einem URL oder wengistens einem dateinamen zu machen, verwendet sie bei deiner art von gebrauch Javascript:nix(), um eine javascript-funktion aufzurufen - das ist schon eine ziemliche vergewaltigung der technik in meinen augen.
dadurch, dass als parameter für's _link_ziel "parent" übergeben wird, versucht die funktion in deinem frame dann "parent.location" einen wert zuzuweisen, und dabei geht wohl etwas schief.
ich würde folgendes vorschlagen:
die funktion MM_jumpMenu() schmeisst du aus dem onchange des selects raus, und rufst stattdessen eine eigene funktion auf.
also value für die options verwendest du einfache zahlen, und lässt dann in abhängigkeit von der ausgewählten zahl per switch() deine funktion die gewünschte weitere javascript-funktion aufrufen, die bei der anwahl der option ausgeführt werden soll.
und eigne dir die javascript-grundlagen an, anstatt dich von schlechtem, von editoren generierten code in die sch**** reiten zu lassen ...
gruss,
wahsaga
hi,
danke schon mal, hab ja auch nie behauptet son toller javascript checker zu sein, deshalb poste ich ja.
hab fast alles mit dreamweaver gemacht.
wenns dir net gefällt dann anworte halt net, anstatt einen blöd anzumachen.
trotzdem danke
hi,
wenns dir net gefällt dann anworte halt net, anstatt einen blöd anzumachen.
1. zum x-ten mal: in diesem forum besteht keinerlei anspruch darauf, dass du nur antworten bekommst, die dir in den kram passen.
2. mann, komm wieder runter. ich versuche dir zu helfen - dazu habe ich dir erstmal aufgezeigt, was an dem derzeitigt verwendeten script alles mist ist. blöd angemacht habe ich dich m.e. kein bisschen.
(wenn du den hinweis, dass du dich mehr mit den javascript-grundlagen beschäftigen solltest, da du mit dem murks-code, den dreamweaver produziert, auf keinen grünen zweig kommst, dann ist das dein problem.)
gruss,
wahsaga
Holla , wahsaga !
Heute schon an die Nase gefasst ??
Und ich dachte schon MICHI hat dich eines Besseren belehrt!
;o)
Recht so!
Wer mit Macromedia rumwerkelt hat's nicht anders verdient !
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
Hab' ich heut' doch schon mal gelesen !!
[pref:t=62677&m=354615]
:o))))
hi,
Und ich dachte schon MICHI hat dich eines Besseren belehrt!
um jemanden "eines besseren belehren", überzeugen zu können, oder wie auch immer du es nennen willst, sollte man argumente bringen.
"MICHI" hatte keine.
gruss,
wahsaga
wenns dir net gefällt dann anworte halt net, anstatt einen blöd anzumachen.
lol!
Das war gemein, er hat sich echt mit Deinem Problem auseinandergesetzt, deinen Code angeschaut und Dir konstruktive Lösungsvorschläge gegeben..
Gruß