Zur Navigation

Mein Fragebogen funktioniert nicht im IE

1 Silvi

Hallöchen,

ich habe gerade ein großes Problem mit meinem Javascript Fragebogen, in Chrome und Firefox funktioniert die Auswertung am Ende bestens, doch im Internet Explorer tut sich leider gar nichts bzw. es wird nichts ausgewertet stattdessen kommt bei alles Feldern die ausgewertet werden sollen undefined.

Vom Prinzip sollte ja alles klappen nur wieso macht der IE das nicht?
Muss ich evtl. den Javascript für den IE noch irgendwie erweitern?

Kann auch gerne mal den Script hier posten ist jedoch ziemlich lang.

Wäre toll wenn jemand einen Tipp für mich hat.

Liebe Grüße
Silvi

30.09.2009 22:33

2 Jörg

Kann auch gerne mal den Script hier posten ist jedoch ziemlich lang.

Der Code wäre schon hilfreich - du kannst das Script in einem Codeblock posten (zwischen [code] und [/code]) - dann ist das ganze lesbar

30.09.2009 23:30

3 Silvi

Hallo Jörg,

vielen Dank für Deine schnelle Reaktion...

Ich kann ja auch mal den Link posten dann ist es vielleicht einfacher nachvollziehbar was genau nicht geht:

Hier der Fragebogen der beim IE eine Fehlermeldung bringt (Ich habe diesen modifiziert und etwas angepasst und anschliessend per Plugin in Wordpress eingebunden:

http://www.bach-blueten-therapie.de/category/bachblueten-selbsttest/

Wie gesagt mit dem FF und Chrome funktioniert er 100% im IE kommt ein undefined.

Hier der andere Test der nicht per Plugin aufgerufen wird aber auch nicht von mir angepasst ist:
http://www.bach-blueten-therapie.de/selbsttest.htm

Dieser funktioniert mit ALLEN Browsern.

Ich kann leider NULL Javascript und hab eben einfach die Anpassungen der Auswertung nach Gefühl gemacht :-)

Beste Grüße
Silvi

01.10.2009 07:36

4 Jörg

Du hast auf der ersten Seite zwei body Tags.

In Zeile 102:
</head>
<body>

In Zeile 440:
</HEAD>

	<BODY  topmargin=0 leftmargin=0 marginheight=0 marginwidth=0 onload="CSScriptInit(); init();na_preload_img(false, 'grafik/blank.gif', 'grafik/blank.gif');" background="#ffffff">

Das geht so natürlich nicht: du kannst nur einmal den head schließen und nur einmal en body eröffnen. Der (einzige) body muss dabei wie im zweiten Fall die JavaScript-Aufrufe onload="CSScriptInit(); init();na_preload_img(false, 'grafik/blank.gif', 'grafik/blank.gif');" enthalten. Der IE ignoriert den zweiten body (womit er ja auch nicht ganz unrecht hat) und somit auch den Aufruf von init(). Dadurch kennt er nicht die Namen der Bachblüten und die Anzahl der Klicks.

Also erstmal das HTML-Gerüst in Ordnung bringen, dann sollte es auch mit dem JavaScript funktionieren :)

01.10.2009 10:53 | geändert: 01.10.2009 10:54

5 Jörg

Nachtrag

Ich hab grad nochmal gelsen, dass es sich um Wordpress handelt.

Wenn es nicht möglich ist, die Funktionsaufrufe in das eigentliche body Tag einzubringen, könntest du das init() vielleicht beim "Go" Link mit übergeben:

<FONT size=2 face=Arial,Helvetica><A href=javascript:init(); ergebnis()><IMG src="http://www.bach-blueten.eu/grafik/btngo.gif" height="32" width="32" border=0 align=left></A>&nbsp;Sie 
            haben es geschafft der Button &quot;GO&quot; zeigt Ihnen Ihre individuelle 
            Mischung an. (Das Ergebins finden Sie ganz oben auf der Seite, deshalb nach dem Best&auml;tigen des Buttons bitte nach oben scrollen.)</FONT></TD>

Ob das so funktioniert, weiß ich nicht, das müsstest du ausprobieren. Der zweite body Tag muss hierbei aber natürlich auch entfernt werden!

01.10.2009 11:04

6 Silvi

Danke Jörg das habe ich verstanden.

Werde ich später gleich mal testen um zu sehen ob es funktioniert. Das mit dem zweiten Head und Body ist mir gar nicht aufgefallen.

Ich melde mich ob es geklappt hat :-)

Beste Grüße
Silvi

01.10.2009 11:17

7 Silvi

Schade das funktioniert so nicht, ich bekomme dadurch den GO Button nicht mehr aktiv, kann klicken passiert aber nichts.

Gibt es irgendwie eine andere Möglichkeit dieses init zu übergeben?
Ich möchte diesen Aufruf ja nicht auf allen Seiten haben.

Früher hatte ich den Fragebogen per Iframe eingebunden, das ist aber nicht wirklich eine gute Regelung

Beste Grüße
Silvi

01.10.2009 11:29

8 Jörg

Ja, das init() muss auch schon nach dem Laden des Dokuments aufgerufen werden, um die Klicks zu zählen.

Aber du könntest probieren, es am Ende des Scriptes aufzurufen:

function na_restore_img_src(name, nsdoc)
{
  var img = eval((navigator.appName.indexOf('Netscape', 0) != -1) ? nsdoc+'.'+name : 'document.all.'+name);
  if (name == '')
    return;
  if (img && img.altsrc) {
    img.src    = img.altsrc;
    img.altsrc = null;
  } 
}

init();

// -->
</script>

... und diese überflüssigen Tags hier löschen:

	</HEAD>

	<BODY  topmargin=0 leftmargin=0 marginheight=0 marginwidth=0 onload="CSScriptInit(); init();na_preload_img(false, 'grafik/blank.gif', 'grafik/blank.gif');" background="#ffffff">

01.10.2009 12:38

9 Silvi

Juuhuuuuu :-) Ich danke Dir ganz herzlich Jörg, das hat jetzt geklappt, der Fragebogen funktioniert nun auch im IE. Freuuu....

Beste Grüße
Silvi

P.S. Dieses Forum hier ist einfach das beste!!!!

01.10.2009 13:38

10 Silvi

Ach nein es geht ja doch nicht ich hab falsch geschaut...
Jetzt werden zwar die Klicks gezählt aber der Bluetenname ist undefined *seufz*

01.10.2009 13:52