關於我

我的相片
用心思考、保持熱情,把工作上的經驗作分享與紀錄。希望能夠跟大家一起不斷的成長~

javascript windows.location

當我們在撰寫Asp.Net時, 如果要讓程式於執行完成時,

可出現Message,最常的用法是在codebehidn寫入下方程式:

Page.ClientScript.RegisterStartupScript(this.GetType(), "Msg", "<script>alert('執行成功');</script>");

即可讓程式在Response時,寫入client的script,跳出訊息視窗.

 

但當遇到希望可以回傳成功的訊息,並跳轉導入其他頁面.

如果使用下方的寫法:

Page.ClientScript.RegisterStartupScript(this.GetType(), "Msg", "<script>alert('執行成功');</script>"); 
Page.Response.Redirect("xxx.aspx");

先註冊一段client端的Script,接著再將Response導至預期的頁面。

看似一切都沒什麼問題,但當實際執行時,便會發生訊息不見的冏境。

 

實際分析了一下,原因很簡單,因為頁面已經被導至其他頁面了.

所以被註冊在原始頁面的Script,當然不會被執行到囉!

自然而然,訊息是不會出現的.

 

可是那要怎麼辦呢?!沒有辦法可以做到這個功能嗎?!

有的,可參考下面的這行程式:

Page.ClientScript.RegisterStartupScript(this.GetType(), "Msg", "<script>alert('執行成功'); window.location = 'xxx.aspx';</script>");

發現了嗎?!我們將導至其他頁面的動作,保留到Client再由JavaScript去完成他!

這樣就可以在不影響訊息顯示的情況下,依然導入預期頁面了!

 

這就是好用的JavaScript "windows.location"!

沒有留言:

張貼留言