javascript - con - safari/chrome onsubmit="location.reload(true)" no funciona
location reload con parametros (4)
Dado que fue la solución para usted:
El uso de setTimeout
veces funciona como una solución hacky posponiendo la ejecución por muy poco tiempo: http://jsfiddle.net/xzanQ/ .
Un formulario en mi sitio web no funciona correctamente en Safari / Chrome. Cuando un usuario envía el formulario, abre una nueva pestaña, pero quiero que vuelva a cargarse la página original (página con el formulario). Funciona en IE, Opera y Firefox.
El código:
<form action="/search.php" method="post" onsubmit="location.reload(true)" target="_blank" name="myform">
Probé otras funciones de JavaScript como:
- window.location.reload ();
- document.location.reload ();
- window.location.replace (''http://www.websiteurl.com'');
- window.location.href = ''http: //www.websiteurl.com'';
- Y otras variaciones de estos.
Pensé que tal vez era el onsubmit = "" no funcionaba, pero cuando probé onsubmit = "alert (''test'')" funcionó bien en Safari / Chrome.
Además, en la página search.php a la que se envía el formulario, si un usuario va directamente a la página usando la url y no envía el formulario, lo configuro para que la etiqueta corporal se cargue como:
<body onload="window.location.replace("http://www.websiteurl.com")>
que funciona en todos los navegadores que incluyen Safari / Chrome.
¡¿¡¿Que esta pasando aqui?!?!
¡Gracias!
Tu podrías intentar:
window.location.href=window.location.href
onsubmit
se ejecuta antes de que se publique un formulario. Si ya se está descargando una página, es posible que el formulario ya no se envíe.
Pruebe algo como:
var myForm=document.getElementById(''myForm'');
myForm.addEventListener(''submit'',function(event){
event.preventDefault();
this.submit();//Submit the form BEFORE reloading
location.reload(true);
},false);
Acabo de enfrentar un problema similar después de depurar durante horas descubrí que a; faltaba en mi declaración onsubmit ..
Cambiando:
onsubmit = "location.reload (true)"
A:
onsubmit = "location.reload (true);"
Se corrigió mi problema de safari en mac ...