• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Form-Submit geht nur mit IE nicht mit FF oder Chrome

Danke für den Source - aber so weit war ich ja schon!
Auch ich habe es geschaft das ein Submit mit allen Browsern geht (wenn auch anders als du).

Das Problem jetzt ist doch das im Adressfeld immer "..?Bool=" stehen bleibt.
Was ich bei deinem Beispiel nicht finden kann ist location.href oder .reload(true) um quasi das Adressfeld zu "bereinigen".
Bei deinem Beispiel ist das Reload-Problem nicht gelöst.

Vielen Dank!
Reload ist auch unnötig. Du willst eine Weiterleitung, diese machst du am besten Serverseitig. Aber du kannst in meinen Code auch ein location.href einfügen, nur funktioniert das in dem Fall nicht, da ich nur mit JS deine Serverseitige Logik nicht simulieren kann.
 
OK, ich hab es mal mit cookie simuliert.
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

<HTML> 

<HEAD> 
<TITLE>Hier ist der Titel</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta name="description" content="Eine kleine Beschreibung">
<meta name="author" content="Schreiberling">

<script type="text/javascript">
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

var param = window.location.search;
var bool = '';
if(readCookie('bool')) {
	bool = readCookie('bool');
}
if(param) {
	if(param.indexOf('Toggle') > -1) {
		bool = bool == 0 ? 1 : 0;
	} else {
		var idx = param.indexOf('=');
		bool = param.substr(idx + 1);
	}

	createCookie('bool', bool, 1);
	window.location.href = 'test.html';
}

</script>
</HEAD>

<BODY>

<form action="" method="get">
<script type="text/javascript">document.write('<input name="Bool" type="hidden" value="' + bool + '">');</script>

<input type="submit" value="Auf 1" onClick ="this.form.Bool.value=1">
<input type="submit" value="Auf 0" onClick ="this.form.Bool.value=0">
<input type="submit" name="submit" value="Toggle">

<br>Bool: 
<script type="text/javascript">document.write('<input type="text" value="' + bool + '">');</script>

</form>

</BODY>
 
</HTML>
 
Danke struppi - aber wie ich schon schrieb - Serverseitig geht nicht!
Also bei FF und IE geht ein .reload(true) und auch locaton.href= mit dem gewünschten Ergebnis Seite neu vom Server laden.
Das muss doch mit Chrome auch gehen.

Aber danke für dein Hilfe - muss wohl einsehen dass Chrome für diese Aufgabe ungeeignet ist.

Bernd
 
Sorry - während ich schrieb warst du ja super fleißig! :-)

Habe mal deine Code ausprobiert - scheint als würde es wirklich gehen! :-)
Fummel mal meine MWSL - Teil dazu und test es dann.

Vielen, vielen Dank!
Bernd
 
Hallo struppi - du hast einen Orden verdient! :-)

Aber ich bin ganz ehrlich ich weiß nicht warum es geht!
Ich habe die Cooki Sachen mal entfernt, da ich ja den wert "frisch" vom Server bekommen.
So sieht es jetzt aus:
HTML:
<script type="text/javascript">
var param = window.location.search;
var bool = ' <MWSL> <!-- if(GetVar("WEBContent.AnAus")=="true"){write("0");} else {write("1");}; --> </MWSL>'
if(param) {
 window.location.href = '2.html';
}
</script>

Mir ist nicht klar - wieso das jetzt geht!
Hast du da eine Erklärung? Welcher Teil sorgt dafür das windows.loacation.href ausgeführt wird?

Nochmal vielen - vielen Dank für deine Hilfe!
Bernd
 
Naja, weil jetzt alles chronologisch abläuft. In deinem ursprünglichen Code war das nicht unbedingt der Fall. Du kannst nicht ein Formular abschicken und gleichzeitig eine neue Seite aufrufen - es mag zwar in manchen Browsern funktionieren, ist aber eine unsichere Sache. - aber auch nur eine Vermutung.
 
Naja, wenn du ein form.submit() machst, sollte eigentlich der nachfolgende Code nicht mehr ausgeführt werden, da du damit ja eine neue Seite anforderst. Die Browser sehen das aber nicht so eng, sondern führen den Code noch so lange aus, bis die Antwort eintrifft. Das gleiche gilt für location.href
 
Zurück
Oben