1. 程式人生 > >基於Skyline的web開發(6.x)

基於Skyline的web開發(6.x)

返回 lin 加載 code 場景 ner explorer 對象 設置

多窗口對比

一個頁面加載多個TerraExplorer3DWindow和SGWorld等只有第一個能用(即使用iframe也是一樣)

所以我決定打開兩個新頁面實現多窗口對比,然後我在《主頁面》使用window.open打開了兩個《新頁面》,但這兩個新頁面使用SGWorld時居然在主頁面(使用window.open的頁面)產生了效果,感覺和以前的一個頁面加載多個TerraExplorer3DWindow 和 SGWorld效果一樣了!!!

然後經過測試發現關閉主頁面新頁面就正常加載三維地圖了。可以看出使用window.open時主頁面和新頁面是有關聯的,我一開始試了很多方法都斷不開這個關聯,最後決定打開新頁面時多打開一個主頁面,然後關掉主頁面這種笨方法。

當使用window.close當前關閉窗口,居然沒有關上,我一搜發現了關閉前有這一行代碼window.opener=null

opener 屬性是一個可讀可寫的屬性,可返回對創建該窗口的 Window 對象的引用。
opener 屬性非常有用,創建的窗口可以引用創建它的窗口所定義的屬性和函數。

斷開主頁面和新頁面關聯的方法找到了!!!

總結:
使用window.open打開兩個窗口,然後設置window.opener為null,這樣就可以在不同窗口中打開三維場景了。

基於Skyline的web開發(6.x)