L'errore si sta trattando è legato alla protezione cross-domain e la stesso- politica di origine.
Nel tuo caso, puoi stampare un iframe tra domini se annidi questo iframe in un altro iframe locale che possiamo chiamare iframe proxy.
Poiché l'iframe proxy è locale e ha la stessa origine, è possibile stamparlo senza problemi e stamperà anche l'iframe tra domini.
Vedi sotto per un esempio:
index.html (contenitore)
$(function() {
var url = 'proxy.html'; // We're not loading the PDF but a proxy which will load the PDF in another iframe.
var iframe = $('<iframe src="' + url + '"></iframe>').appendTo($('#main'));
iframe.on('load', function(){
iframe.get(0).contentWindow.print();
});
});
proxy.html (proxy)
<body>
<iframe src="http://ANOTHER_DOMAIN/PDF_NAME.pdf"></iframe>
</body>
Con questa soluzione, non hai più trasversale problemi di dominio e puoi usare la funzione print(). Le uniche cose che devi affrontare sono un modo per trasferire l'url PDF dal contenitore al proxy e un modo per rilevare quando l'iframe con il PDF viene effettivamente caricato, ma questi dipendono dalla soluzione/lingue che stai utilizzando.
Beh, credo che il messaggio di errore è abbastanza descrittiva:. * Protocolli, domini e le porte devono corrispondere * 'secure.domain.com' non è la stessa come' CDN. domain.com'. –
ci deve essere una soluzione alternativa – clarkk