noobie-php
tengo el siguiente script
Página principal (pair_pixel_filter.php):
window.addEventListener("message", function(e) {
$('#log').append("Received message: " + (e.data));
}, false);
$('.photo-upload-btn').click(function(event) {
event.preventDefault();
window.open($(this).attr("href"), "popupWindow", "width=600,height=600,scrollbars=yes");
});
La página del niño
$.ajax({
type: 'post',
url: url,
data: {
base64data: dataURL
},
success: function(data) {
window.opener.postMessage(data, "pair_pixel_filter.php");
window.close(); }
});
Básicamente, abrir una ventana emergente y luego hacer algo de ajax en la ventana emergente y devolver el resultado a los padres. Pero de Child recibo este error.
Error de sintaxis no detectado: no se pudo ejecutar ‘postMessage’ en ‘Window’: origen de destino no válido ‘pair_pixel_filter.php’ en una llamada a ‘postMessage’
El segundo parámetro de postMessage
es el “origen objetivo”. Este es el dominio donde se encuentra la página, no el nombre del archivo (php).
Tiene que ser algo como:
window.opener.postMessage(data, "http://example.com");
Ver: https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage
-
muy cierto, acabo de enterarme de que necesitamos pasar la ruta completa como
localhost/abc/mypage.php
– noobie-php
29/04/2014 a las 20:09
-
@noobie-php en realidad, javascript ignorará cualquier cosa después del dominio, por lo que la ventana de destino lo aceptará si el host es localhost, incluso si la ruta es diferente. Por lo tanto, pasando
http://localhost/abc/mypage.php
como origen tendrá el mismo efecto que pasarhttp://localhost
ohttp://localhost/literally/anything/xyz.php
.– Jay Dadhania
7 de noviembre de 2019 a las 17:15