Estoy usando esto para abrir una nueva pestaña y luego hacerle saber al controlador que se accedió al enlace:
$("#tosClick").click(function () { setButtonStatus(); $.get("/Home/DisplayTOS") .done(function (responseData) { if (responseData != "") { var myWindow = window.open(responseData); $.get("/Home/TOSShown"); } }); }); donde tosClick es <span>Agree to <span class="btn-link" id="tosClick">Terms of Service</span></span> .
En Chrome, abre la nueva pestaña, le da el foco y muestra la página adecuada. Si un usuario vuelve a la pestaña original, se cuelga, eso no funciona. El puntero no cambia según lo que haya terminado, etc. El usuario no puede ingresar texto, hacer clic en botones ni hacer nada en la página.
Cerrar la pestaña recién abierta no tiene efecto en la pestaña original. Sin embargo, abrir las herramientas de desarrollo "libera" la página original y todo funciona. Si las herramientas de desarrollo estaban abiertas cuando se abre la segunda página, ocurre el mismo "bloqueo". Cerrar las herramientas para desarrolladores no tiene ningún efecto, pero volver a abrirlas restaura el funcionamiento de la página original.
Firefox no tiene este comportamiento. Al hacer clic en el enlace de la página, se abre la nueva página y todo lo que hay en la página original sigue funcionando.
¿Qué debo hacer para permitir que un usuario haga clic en el span "Mostrar TOS", tener una nueva pestaña abierta y aún tener la pestaña original funcionando correctamente?