2012-06-24 45 views
1

我嘗試在重定向到另一個頁面之前使用JavaScript打開一個彈出窗口。在重定向到其他頁面之前運行JavaScript

我寫這段代碼:

ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "abc", "window.open('http://yahoo.com','2','resizable=yes,directories= no,menubar=no,top=null,left=00, width=100,height=100')", true); 
Response.Redirect(p.Url); 

,但它只是一個重定向和彈出窗口不會打開。

如何在用戶用戶重定向到另一個頁面之前打開一個彈出窗口?

+0

因爲它的立場,這樣的代碼會引發幾乎所有的瀏覽器,因爲它沒有彈出用戶交互的一部分的彈出窗口攔截器(點擊尤其是) –

+0

沒有probleam由布勞爾塊,因爲測試沒有重定向和打開彈出窗口 – mrdudu

+0

只是一個小紙條,它不是javacode,也不是「java腳本」。這是JavaScript。你可能會認爲這只是一個單詞遊戲,但是如果使用得不好,它可能會讓人感到困惑...... Java和JavaScript是兩個完全不同的東西。 – walther

回答

2

如果你正在做任何事情像打開彈出窗口或窗口...在response.redirect();之前,它將無法正常工作。如果你想打開彈出框後重定向到任何網頁,請確保重定向應寫在Javascript不僅沒有在C#

這將無法正常工作

Response.Write("<script language='javascript'>alert('hello')</script>"); 
Response.Redirect("About.aspx"); <br> 

這將工作

Response.Write("<script language='javascript'>alert('hello'); 
window.location.href='About.aspx';</script>"); 

OR

if (!ClientScript.IsStartupScriptRegistered("alert")) 
{ 
Page.ClientScript.RegisterStartupScript(this.GetType(), "alert",  "alertMe();window.location.href='About.aspx';", true); 
} 

這樣,我們可以調用外部JS文件還

Page.ClientScript.RegisterStartupScript(this.GetType(), "callJS", 
"&alt; script language='javascript' src='sample.js' &glt; "); 
+0

我說使用「window.location.href」而你說「使用window.location.href」?和我的回答有什麼不同?這非常非常非常非常好! – Mehmet

0

如果您正在使用ScriptManager.RegisterStartupScript您應該插入您的javascipt的代碼添加到您的aspx頁面頂部(在<head>標籤)

對我工作的示例;

ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "abc", "<script>OpenWin();</script>", false); 
Response.Redirect(p.Url); 

在aspx頭標籤;

<script type="text/javascript"> 

function OpenWin() { 
     window.open('http://yahoo.com', '2', 'resizable=yes,directories= no,menubar=no,top=null,left=00, width=100,height=100'); 
    } 

</script> 

如果此代碼不起作用,另一種方式; 您可以使用javascript進行重定向。喜歡這個 ;

window.location.href="p.Url"; 

但是在這種方式你應該得到p.Url值爲javascript。你可以用很多方法做到這一點,(隱藏字段,會話等)

+0

tnx使用java重定向 – mrdudu

相關問題