El niño perdió a su padre!!

Tengo una ventana padre, cuando alguien hace clic en una imagen un JS emergente se abre y muestra la foto y su información.

Para cerrar el popup/niño de la ventana, y a flash un elemento de mi padre/abrelatas de la ventana, he estado usando esta función:

function closeWindow() {
    var currentID = document.getElementById('currentID').value;
    window.opener.flashElement(currentID);
    window.close(); 
}

Mi problema es que esto no funciona si mis usuarios navegar fuera de la página que la ventana emergente que se abrió originalmente. Por ejemplo, en la ventana emergente, hay botones siguiente y anterior para desplazarse a través de las fotos individuales en el conjunto de resultados, que vuelve a cargar la página con una nueva cadena de valor.

Si mi usuario se desplaza (recargas de página) menos de 7 veces está bien, pero si que desplazarse más allá de eso, la window.opener función no funciona, y debido a eso, la window.close función no!

Yo probablemente podría reconstruir la página, de manera que la información viene a través de una llamada AJAX, en lugar de tener que recargar la página, pero eso es un montón de trabajo que podía hacer sin.

Alguna idea?

Cuando es el closeWindow() función que se llama? Cuando el usuario hace clic en un botón “cerrar” o algo similar? Y para ser totalmente claro, closeWindow() está en el niño de la ventana, ¿correcto?
posibles duplicados de Ventana Emergente.Abridor de Redirigidas o Cerrado
sí closeWindow() se llama cuando el usuario hace clic en un botón de cerrar y la closeWindow() está en el niño de la ventana. Como digo, funciona bien si el usuario no tiene que volver a cargar la ventana emergente de más de 7-8 veces.
Sí, tanto en Twitter y Facebook todavía utilizar ventanas emergentes. Revisar Twitter desarrollador de páginas. Que no puede ser tan malo 🙂
y.. Fuentes de Google utilizar ventanas emergentes. 3 grandes nombres de usar

OriginalEl autor TheCarver | 2011-12-23

1 Comentario

  1. 13

    Mi conjetura es que

    window.opener.flashElement(currentID);

    es tirar un error, o la función no existe. Más probable es que el elemento con el valor de currentID no existir en la página. Intenta coger el error.

    function closeWindow() {
        var currentID = document.getElementById('currentID').value;
        try {
            window.opener.flashElement(currentID);
        } catch (err) {
            alert(err.description || err) //or console.log or however you debug
        }
        window.close(); 
    }
    Derecho que ayudó bastante en realidad. Me enteré de que la currentID valor fue de vacío, por lo que estaba causando un error dentro de la función en la página principal. Pero eso todavía no explica por qué el currentID se encuentra en el 1er lugar. Es un texto oculto-un campo poblado por ASP con photoID. Si el photoID no estaba presente la página no carga! Extraño!!

    OriginalEl autor jermel

Dejar respuesta

Please enter your comment!
Please enter your name here