2017-07-26 138 views
0

所以我的問題是我的原始頁面上有一個按鈕,應該打開一個新窗口,以便用戶可以創建一個新的對象。這在第一次按下按鈕時正常工作。但是,如果我想同時創建另一個對象,並在原始頁面上按下創建新對象,而不是創建另一個新窗口,則該站點只會在第一個新對象I的相同窗口上打開新的創建對象頁面試圖創造。顯然,這會導致我最初輸入的所有信息都會創建一個丟失的新對象。Javascript-打開新窗口而不重複使用以前打開一個

這裏是onClick,它調用了打開窗口的openPopWindow函數。

onClick="openPopupWindow('<% =NEWOBJECT_URL %>', 0);" 

這裏是openPopWindow功能

function openPopupWindow(strPage, TicketId){ 
     var winTop = 10; 
     var winLeft = Math.round(screen.width/2) - 800/2; 
     var POPUP_FEATURES = "scrollbars=no,resizable=yes,toolbars=no,status=no,height=650,width=800"; 
      POPUP_FEATURES += ",top=" + winTop + ",left=" + winLeft; 
     var POPUP_NAME = "NewViewWindow" 
     var POPUP_FNAME = strPage; 
     var PopupURL, URLParams; 
     var theWindow 

     PopupURL = POPUP_FNAME; 
     theWindow = window.open(PopupURL, POPUP_NAME, POPUP_FEATURES); 
     theWindow.focus(); 
     return theWindow; 
    } 

那麼,有沒有辦法讓一個新的窗口總是可以打開,而不是重用相同打開網頁的?任何幫助是極大的讚賞!

回答

1

如果一個名稱已經存在的窗口,那麼strUrl會加載到現有的窗口中。在這種情況下,該方法的返回值是現有窗口,並且忽略strWindowFeatures。爲strUrl提供一個空字符串是一種通過其名稱獲取對打開窗口的引用而無需更改窗口位置的方法。要在每次調用window.open()時打開一個新窗口,請爲strWindowName使用特殊值_blank。

window.open

var POPUP_NAME = "_blank" 

也從窗口名稱是不是標題文檔注意。要設置標題,你會做

theWindow.document.title = "NewViewWindow" 
0

而不是一個固定的POPUP_NAME你可以使用一個隨機字符串的或更好的只是使用當前時間戳Date.now()

因此,這將是這個樣子

theWindow = window.open(PopupURL, `win${ Date.now() }`, POPUP_FEATURES);