Formularz na mojej stronie nie działa poprawnie w Safari/Chrome. Kiedy użytkownik przesyła formularz, otwiera nową kartę, ale chcę, aby oryginalna strona (strona z formularzem na niej) przeładowywała. Działa w IE, Operze i Firefox.safari/chrome onsubmit = "location.reload (true)" nie działa
Kod:
<form action="/search.php" method="post" onsubmit="location.reload(true)" target="_blank" name="myform">
Próbowałem innych funkcji javascript, takich jak:
- window.location.reload();
- document.location.reload();
- window.location.replace ("http://www.websiteurl.com");
- window.location.href = 'http: //www.websiteurl.com';
- I inne odmiany tych.
Pomyślałem, że może to był onsubmit = "" nie działa, ale kiedy próbowałem onsubmit = "alert (" test ")", który działał dobrze zarówno w Safari/Chrome.
Również na stronie search.php że słupki formularz, aby, gdy użytkownik przechodzi bezpośrednio do strony za pomocą adresu URL, a nie złożenia formularza, mam go ustawić, że znacznik ciało zostanie załadowany jako:
<body onload="window.location.replace("http://www.websiteurl.com")>
, która działa we wszystkich przeglądarkach zawierających Safari/Chrome.
Co się tu dzieje?!?!
Dzięki!
nie wiem dlaczego to nie działa regularnie, ale 'setTimeout' Hack działa: http://jsfiddle.net/xzanQ/. – pimvdb
Czy chcesz również otworzyć nową kartę? – j08691
Miałem podobny problem z ponownym ładowaniem, który nie działał we wszystkich warstwach (choć nie w kontekście przeładowywania formularzy) i zakończył się: window.location = window.location; –