safari/chrome onsubmit=“location.reload(true)" funktioniert nicht
Ein Formular auf meine website funktioniert nicht richtig im Safari/Chrome. Wenn ein Benutzer das Formular sendet, wird es öffnet sich ein neuer tab, aber ich möchte die original-Seite (Seite mit dem Formular), um neu zu laden. Es funktioniert in IE, Opera und Firefox.
Code:
<form action="/search.php" method="post" onsubmit="location.reload(true)" target="_blank" name="myform">
Ich habe versucht, andere javascript-Funktionen wie:
- Fenster.Lage.reload();
- Dokument.Lage.reload();
- Fenster.Lage.ersetzen('http://www.websiteurl.com');
- Fenster.Lage.href='http://www.websiteurl.com';
- Und andere Variationen dieser.
Ich dachte, vielleicht war es das onsubmit="" funktioniert nicht, aber wenn ich versuchte onsubmit="alert('test')" das funktionierte gut sowohl in Safari/Chrome.
Auch, auf die search.php Seite, die das Formular Beiträge an, wenn ein Benutzer geht direkt auf die Seite mit dem url, und nicht die Vorlage der form habe ich es eingestellt, dass das body-tag geladen:
<body onload="window.location.replace("http://www.websiteurl.com")>
die auf allen Browsern funktioniert includeing Safari/Chrome.
Was ist denn hier Los?!?!
Dank!
- Ich weiß nicht, warum es funktioniert nicht regelmäßig, aber ein
setTimeout
hack funktioniert: jsfiddle.net/xzanQ. - Möchten Sie die neue Registerkarte zu öffnen, wie gut?
- Ich habe ein ähnliches problem mit Neuladen funktioniert nicht in allen Vorhängeschloss (nicht jedoch im Kontext von form nachladen) und endete mit: Fenster.location=Fenster.Lage;
- Ich will eine neue Registerkarte öffnen aswell
- danke! die setTimeout gearbeitet!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da war es die Lösung für Sie:
Mit
setTimeout
funktioniert manchmal wie ein hacky Lösung durch Verschiebung der Ausführung für sehr kurze Zeit: http://jsfiddle.net/xzanQ/.Könnten Sie versuchen:
onsubmit
wird Sie ausgeführt, bevor ein Formular geschrieben. Wenn eine Seite bereits entladen wurde, kann das Formular nicht eingereicht werden, nicht mehr.Probieren Sie etwas wie:
Ich nur konfrontiert, eine ähnliche problemnd nach dem Debuggen für die Stunden, die ich fand heraus, dass ein ; fehlt in meinem onsubmit-Anweisung..
Ändern:
onsubmit="location.reload(true)"
Zu:
onsubmit="location.reload(true);"
Meine Feste safari auf mac problem..