2017-04-18 56 views
2

我有一個返回對象數組的ajax請求,我需要將它們返回到另一頁進行打印。但我不知道如何將這個對象數組傳遞給另一個選項卡或頁面。JS - 將對象數組傳遞到新窗口

$.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); 



     } 
    }); 
+0

什麼是你的代碼目前呢? – 4castle

+0

用這個返回一個新窗口:[object Object] – scooby

+0

嘗試使用'printWindow.document.write(JSON.stringify(list));' – 4castle

回答

1

只需指定數組中的子窗口:

printWindow.myList = list; 

那麼這將是訪問的子窗口中執行一個全局變量myList

您還可以預渲染的任何JavaScript代碼LIS在父窗口和追加生成的HTML的子窗口,你可以這樣做jQuery中或模板引擎(如鬍鬚)

var renderedListHTML = Mustache.render("HTML TEMPLATE HERE", list); 
printWindow.document.write(renderedListHTML); 
+0

感謝您的詢問,但我該如何操作變量myList?當我試圖在新頁面上訪問這個變量時,它是未定義的 – scooby

+0

在您的erp/index/test頁面中,只需添加一個腳本,然後將其作爲全局變量訪問。 –

0

你試過這樣的事嗎?

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

這裏「list」成爲新窗口對象的一個​​屬性,所以你可以很容易地操縱它。