我有一個包含Javascript視圖模型的應用程序來控制它。父窗口對子窗口的引用子窗體提交時提交
應用程序使用(window.open())啓動一個新窗口,並將'click'事件偵聽器分配給新窗口中的按鈕。新窗口包含一個表單,它在提交時會在其窗口上導致「卸載」事件,從而打破了父窗口對其的訪問。
當窗口「卸載」和表單提交時,父窗口對這個新窗口的引用如何持久或恢復?
我有一個包含Javascript視圖模型的應用程序來控制它。父窗口對子窗口的引用子窗體提交時提交
應用程序使用(window.open())啓動一個新窗口,並將'click'事件偵聽器分配給新窗口中的按鈕。新窗口包含一個表單,它在提交時會在其窗口上導致「卸載」事件,從而打破了父窗口對其的訪問。
當窗口「卸載」和表單提交時,父窗口對這個新窗口的引用如何持久或恢復?
您不能保留該參考。但是,如果您嘗試訪問某種類型的值,可以查看cookies或local storage。
您還可以嘗試通過將事件偵聽器附加到「卸載」事件來恢復該引用。當事件發生時關閉當前的「父」窗口,並使「提交」腳本指向父窗口。一旦打開,您可以從那裏重新打開子窗口。
更新
跨窗口JavaScript是一種混亂的問題。如果適用,我建議採取第一種方法。
據我所知,並非所有瀏覽器都允許通過名稱重新獲得對窗口的訪問權限,即使您提供了它。但我仍然嘗試使用與window.open
不同的窗口名稱。
當試圖重新獲得它的訪問權限 - 只需做一個window.open沒有網址 - 也許javascript:void(0)
作爲地址(所以窗口不會離開),它應該是相同的窗口,只要你使用相同的ID 。
這很漂亮但是