2017-06-24 5 views
0

Dans NWJS, je voudrais ouvrir une fenêtre contextuelle avec une URL de fichier local vers un fichier PDF, puis imprimer le fichier PDF immédiatement (sous Windows). J'ai essayé de le faire:Comment appeler Window.print() dans une fenêtre contextuelle dans NWJS?

nw.Window.open(
    'file://' + downloadItem.filename.replace(/\\/g, '/'), 
    {new_instance: true, height: 600, width: 800}, 
    function(pdfWin) { 
    pdfWin.on('loaded', function() { 
     this.print({autoprint: false}); 
    }); 
    } 
); 

Mais dans les outils de développement, il est dit que pdfWin est indéfinie, ce qui est tout à fait bizarre de me considérer qu'il devrait travailler according to the documentation. J'ai ensuite essayé d'utiliser Window.open avec nw.Window.get() et puis j'obtiens une erreur en disant Blocked a frame with origin "chrome-extension://..." from accessing a cross-origin frame.

Des idées?

+0

Vous ne pouvez pas ouvrir différentes URL d'origine. reportez-vous https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy –

+0

@PrabodhM Je comprends, bien sûr, que les règles croisées origine sont en vigueur, mais la sécurité est un peu différent dans NWJS : http://nwjs.readthedocs.io/en/latest/For%20Users/Advanced/Security%20in%20NW.js/. De toute façon, c'est vraiment l'impression qui pose problème. – daveslab

+0

Peut-être que je me trompe, désolé car je ne suis pas au courant de l'environnement NWJs et de travail. Avez-vous essayé d'ouvrir un fichier en utilisant la même méthode, peut-être codée en dur? –

Répondre

0

D'accord, j'ai trouvé le problème. Le code ci-dessus fonctionne si vous enlevez new_instance: true. Si cette variable est marquée comme true, alors this est initialement undefined et le code ne fonctionne pas.