2017-06-14 68 views
0

我想用下面的代碼打開新窗口。它在google chrome和firefox中正常工作,但在IE中它正在合併窗口。 如果我通過user1登錄,然後一個新的窗口打開,但是當我與user2登錄,然後而不是打開新窗口它將user1用戶會話替換user2。Windows.open()JavaScript在IE中不起作用

這裏是我的代碼

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "name", "var myWindow = window.open('" & pageurl & "','name','titlebar=yes,toolbar=no,directories=no,location=no,status=yes,overflow=hidden;menubar=no,resizable=yes,scrollbars=no,left=0,top=0,width=(screen.availWidth),height= (screen.availHeight)'); myWindow.resizeTo(screen.availWidth, screen.availHeight); ; myWindow.focus(); ", True) 

我想在IE瀏覽器每次打開新窗口時,新的用戶登錄到系統中。

+0

所以問題是,你的彈出窗口被重用? – hardkoded

+0

@kblok ..是的...我每次都想要新的彈出窗口。 –

+0

看看我的回答,告訴我它是否有幫助。 – hardkoded

回答

0

原因可能是您的pageurl變量不正確或包含空格。 (順便說一下,不清楚你從哪裏得到它,所以你可能想把它改成window.location.href)。

而且,嘗試使用ClientScript.RegisterStartupScript代替:

Page.ClientScript.RegisterStartupScript(GetType(), "name", "(js code)", true); 

當您使用RegisterStartupScript,它會之後所有頁面中的元素(表單的結束標籤前右)使你的腳本。這使腳本可以調用或引用頁面元素,而不會在頁面的DOM中找到它們。

在另一方面,當您使用RegisterClientScriptBlock,腳本的Viewstate標籤之後頁面元素的任何前呈現,但

+0

你爲什麼認爲這可以解決這個問題? – hardkoded

+1

@kblok更新與補充。 –

0

window.open中的第二個參數是窗口名稱/ ID。如果您保留相同的名稱,那麼您將該窗口命名爲'name',該窗口將被重新使用。我建議你使用_blank

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "name", "var myWindow = window.open('" & pageurl & "','_blank','titlebar=yes,toolbar=no,directories=no,location=no,status=yes,overflow=hidden;menubar=no,resizable=yes,scrollbars=no,left=0,top=0,width=(screen.availWidth),height= (screen.availHeight)'); myWindow.resizeTo(screen.availWidth, screen.availHeight); ; myWindow.focus(); ", True) 

參考:https://www.w3schools.com/jsref/met_win_open.asp