Как вызвать Window.print() во всплывающем окне в NWJS?

В NWJS я хотел бы открыть всплывающее окно с URL-адресом локального файла в формате PDF, а затем сразу же распечатать PDF (в Windows). Я пытался сделать это:

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});
    });
  }
);

Но в инструментах разработчика написано, что pdfWin не определено, что для меня совершенно странно, учитывая, что он должен работать согласно документации. Затем я попытался использовать Window.open с nw.Window.get(), а затем я получаю сообщение об ошибке Blocked a frame with origin "chrome-extension://..." from accessing a cross-origin frame.

Любые идеи?


person daveslab    schedule 24.06.2017    source источник
comment
Вы не можете открывать различные исходные URL-адреса. см. developer.mozilla.org/en-US/docs/Web /Безопасность/   -  person Prabodh M    schedule 24.06.2017
comment
@PrabodhM Я, конечно, понимаю, что действуют правила перекрестного происхождения, но безопасность в NWJS немного отличается: nwjs.readthedocs.io/en/latest/For%20Users/Advanced/. В любом случае проблема именно в печати.   -  person daveslab    schedule 24.06.2017
comment
Возможно, я ошибаюсь, извините, так как я не знаю о среде и работе NWJ. Вы пытались открыть любой файл, используя тот же метод, возможно, жестко закодированный?   -  person Prabodh M    schedule 24.06.2017


Ответы (1)


Хорошо, я нашел проблему. Приведенный выше код работает, если вы удалите new_instance: true. Если эта переменная помечена как true, то this изначально равно undefined, и код не работает.

person daveslab    schedule 01.07.2017