JS - 将对象数组传递给新的 window

JS - Pass an array of objects to a new window

我有一个 ajax 请求 return 对象数组,我需要将它们 return 在另一页上打印。但是我不知道如何将这个对象数组传递到另一个选项卡或页面。

   $.ajax({
         type: "POST",
         url: "atualizeOrder",
         data: JSON.stringify(ordens),
         contentType: "application/json; charset=utf-8",
         dataType: "json",
         success: function(list) {
             console.log(list);


          var printWindow = window.open( '/erp/index/test');
          printWindow.document.write(list);
          printWindow.addEventListener('load', function(){
              printWindow.print();
              printWindow.close();
          }, true);



         }
    });

你试过这样的东西吗?

var printWindow = window.open('/erp/index/test');
printWindow.list = list;

此处 "list" 成为新 window 对象的 属性,因此您可以很容易地操作它。

只需在 child window:

中分配数组
printWindow.myList = list;

然后它将在 child window 内执行的任何 JavaScript 代码中作为全局变量访问 myList

您还可以 pre-render parent window 中的列表并将结果 HTML 附加到 child window,您可以在 jQuery 或模板引擎(如 Mustache)

中执行此操作
var renderedListHTML = Mustache.render("HTML TEMPLATE HERE", list);
printWindow.document.write(renderedListHTML);