2011-05-23 16 views
8

Cuando hacemos un window.open(), es que hay una opción para especificar method = POST? Dado que por defecto, es GET?Cómo publicar en window.open()

Lo que yo quiero es esto. La ventana principal tiene algunos parámetros de formulario (muchos en número) y se deben enviar al servidor en window.open(). No es una buena idea agregar todos ellos en la url GET usando la cadena de consulta.

Respuesta

14

Usted podría utilizar window.open() para abrir una ventana vacía, con un nombre. Entonces podría usar un <form> con un atributo "objetivo" refiriéndose al nombre de esa nueva ventana, y publicarlo.

editar Aceptar esta es la idea. Tiene un formulario en la página, y se puede ocultar:

<form id='theForm' method='post' action='/your/action' target='TheNewWindow'> 
    <input type='hidden' name='param_1' value='whatever'> 
</form> 

Luego de obtener los resultados en su ventana como esta:

window.open('about:blank', 'TheNewWindow'); 
document.getElementById('theForm').submit(); 

Asegúrese de que el nombre de la ventana que se utiliza es un válido identificador (como un nombre de variable de JavaScript), o IE se molestará.

Here es una jsFiddle.

+0

Puede usted amablemente elaborar un poco? Tal vez una pequeña muestra de código? – Victor

+0

@Kaushik sí Estoy trabajando en una pequeña prueba ahora ... Quiero asegurarme de obtener los detalles correctos :-) – Pointy

+0

Gracias. Esto no funcionará para mí porque siempre abrirá una nueva ventana. Pero olvidé mencionar que solo al hacer clic en un botón en particular, quiero la nueva ventana, sino la misma ventana. Pero gracias por su esfuerzo, voy a aceptar la respuesta – Victor