Dienstag, Januar 21, 2020

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!
InformationsquelleAutor user1165664 | 2012-03-05

4 Kommentare

  1. 0

    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:

    var myForm=document.getElementById('myForm');
    myForm.addEventListener('submit',function(event){
      event.preventDefault();
      this.submit();//Submit the form BEFORE reloading
      location.reload(true);      
    },false);
  2. 0

    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..

Kostenlose Online-Tests