В 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.

Любые идеи?

0
daveslab 24 Июн 2017 в 16:57
Вы не можете открывать URL-адреса другого происхождения. см. developer.mozilla.org/en-US/docs/Web / Безопасность /…
 – 
Prabodh M
24 Июн 2017 в 17:06
Я, конечно, понимаю, что действуют правила перекрестного происхождения, но безопасность в NWJS немного отличается: nwjs.readthedocs.io/en/latest/For%20Users/Advanced/…. В любом случае, проблема в печати.
 – 
daveslab
24 Июн 2017 в 17:19
Возможно, я ошибаюсь, извините, так как я не осведомлен о среде и работе NWJ. Вы пробовали открыть какой-либо файл тем же методом, возможно, жестко запрограммированный?
 – 
Prabodh M
24 Июн 2017 в 17:27

1 ответ

Лучший ответ

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

0
daveslab 1 Июл 2017 в 17:43