2009-05-22 54 views
4

如果選擇了特定的單選按鈕,我需要在回發代碼後面打開一個新窗口。從代碼隱藏中打開新窗口

有沒有辦法做到這一點?

謝謝。

+5

僅供參考:彈出窗口阻止程序會阻止打開此窗口。 – epascarello 2009-05-22 12:09:07

回答

4

可以使用的RegisterStartupScript發送window.open腳本一旦頁面加載運行。

但是,這會導致大多數彈出窗口阻止程序阻止您。

+1

請參閱@BradParks在這裏回答一個關於如何欺騙彈出窗口攔截器的好主意。 – Cyberherbalist 2013-11-21 19:23:11

0

的RegisterStartupScript的簡單示例:

RegisterStartupScript("id1", "<script type=\"text/javascript\">alert(\"I'm from JavaScript.\");</script>"); 
0

新窗口可以很簡略,取決於你需要出示你可以考慮,如果你會在窗口彈出使用的內容。您將以這種方式避免彈出窗口阻止程序。如果你能提供更多的細節,我們可以給出更好的答案。

2

認爲這應該工作;-)

添加一些JavaScript到您的單選按鈕之前打開一個新的空白窗口你回來後。這使得彈出式窗口攔截器不會阻止彈出窗口,因爲它是爲了響應用戶點擊而打開的。請參閱this link瞭解如何完成此部分。

然後,允許回發按正常情況發生,並在頁面加載時,註冊一個啓動腳本,告訴您現有的窗口轉到新的url。

String script = "window.open('popupPage.aspx', 'myPopup')"; 
ScriptManager.RegisterStartupScript(Page, Page.GetType(), "someId", script, true); 

注意,在JavaScript中,當你調用

window.open(url, 'myPopup') 

如果窗口已經存在同名,它會返回它,而不是創建一個新的窗口......所以你彈出不會被阻止!

+1

這似乎工作得很好。感謝您在接受其他答案後很長時間發佈此答案!你救了我很多悲傷。 – Cyberherbalist 2013-11-21 19:21:34