2013-12-20 102 views
1

我有一個帶有母版頁的頁面。 在頁面是一些JavaScript來打開一個新窗口....Window.Open替換失敗

  function PopWin() { 
     var ddl = document.getElementById("DropDownList1"); 
     var strField = ""; 
     if (ddl != null && ddl.selectedIndex > -1 && ddl.options[ddl.selectedIndex] != null) 
      strField += ddl.options[ddl.selectedIndex].text; 
     var win = window.open('Report.aspx?item=' + strField, 'Popup', 'width=1000,height=700,resizable=yes,top=5,left=5,scrollbars=yes,status=yes', false); 
     win.focus(); 
    } 

這調用JavaScript按鈕:

<asp:Button ID="btnReport" runat="server" Text="Report" UseSubmitBehavior="False" 
    OnClientClick="Popwin();" /> 

是對的window.open的JavaScript的格式(URL,名稱,規格,更換)。
問題是即使replace被設置爲false,它仍然會替換當前窗口。它需要打開一個全新的窗口,讓前面的窗口保持完整。

在使用VS 2010和IE 10進行開發時,這可以在我的電腦上運行。 將其放置在登臺服務器上時,它也會在生產服務器上失敗並失敗。

我繼承了整個應用程序,並做了很多修復。舊的代碼工作。
並且將舊的和新的進行比較,除了將替代參數添加到false之外,它是相同的。

只有其他的區別是我也添加和更新面板。是的,我刪除它,但仍然失敗。我甚至清除了瀏覽器緩存,但仍然失敗。我在瀏覽器中查看了源代碼,並且新的JavaScript代碼在那裏。

也刪除了win.focus,它仍然替換舊窗口。

它也在服務器上的FF中失敗。

+0

你究竟在哪裏調用PopWin()? –

+0

調整我的代碼以顯示它。樣本中名稱錯誤。 –

回答

2

replace參數不是你認爲的。來自MSDN的報價:

布爾型指定url是否創建新條目或替換窗口歷史列表中的當前條目。該參數只有在URL被加載到同一個窗口時纔會生效。

要打開多個彈出窗口,您需要爲每個新彈出窗口使用不同的名稱。您可以將打開的窗戶保存在外部變量中,或者可以使用strField,無論如何可以添加一些內容到'Popup' - 使其具有獨特性。

+0

你是絕對正確的。我忘了將所有彈出窗口重命名爲不同的名稱。我添加了一個時間字符串的名稱,它的工作原理就像我需要的那樣。謝謝! –