如何透過 JavaScript 取消 IE 的「回上一頁」功能
發表於 : 2013-07-23 10:59:54
http://blog.miniasp.com/post/2009/03/18 ... cript.aspx
有時後我們會希望 User 在使用「登出」功能後,不要再讓他用 IE 的 回上一頁 按鈕功能,因為回上一頁其實也看不到東西 (因為已經登出了),但確有可能導致網頁出現錯誤畫面或權限不足之類的錯誤,我今天就分享一個 JavaScript 開發技巧,讓你徹底消除 IE 的 URL 瀏覽紀錄。
我寫了一個簡單的 JavaScript function 如下,主要程式僅三行而已:
view plaincopy to clipboardprint?
function gotoUrl(url)
{
// 取得歷史網址的長度
var len = history.length;
// 先回到 IE 啟動時的第一頁
history.go(-len);
// 再將網址轉向到目的頁面 ( 注意: 一定要用 location.replace 函式 )
location.replace(url);
return false;
}
只要透過這個 gotoUrl 函式進行轉址動作,User 的 IE 所有之前的歷史紀錄都會消失,不過這個技巧僅適用於 Internet Explorer 而已。
若要使用這個函式範例如下:
view plaincopy to clipboardprint?
<a href="/logout.aspx" onclick="gotoUrl('/logout.aspx');">登出</a>
當你使用這個技巧連結到 /logout.aspx 網頁後,即可進行登出動作,並在 logout.aspx 程式直接利用 Response.Redirect 轉址回首頁,這樣你就會發現回首頁之後所有歷史紀錄都消失了,就好像沒登入過一樣!^_^
有時後我們會希望 User 在使用「登出」功能後,不要再讓他用 IE 的 回上一頁 按鈕功能,因為回上一頁其實也看不到東西 (因為已經登出了),但確有可能導致網頁出現錯誤畫面或權限不足之類的錯誤,我今天就分享一個 JavaScript 開發技巧,讓你徹底消除 IE 的 URL 瀏覽紀錄。
我寫了一個簡單的 JavaScript function 如下,主要程式僅三行而已:
view plaincopy to clipboardprint?
function gotoUrl(url)
{
// 取得歷史網址的長度
var len = history.length;
// 先回到 IE 啟動時的第一頁
history.go(-len);
// 再將網址轉向到目的頁面 ( 注意: 一定要用 location.replace 函式 )
location.replace(url);
return false;
}
只要透過這個 gotoUrl 函式進行轉址動作,User 的 IE 所有之前的歷史紀錄都會消失,不過這個技巧僅適用於 Internet Explorer 而已。
若要使用這個函式範例如下:
view plaincopy to clipboardprint?
<a href="/logout.aspx" onclick="gotoUrl('/logout.aspx');">登出</a>
當你使用這個技巧連結到 /logout.aspx 網頁後,即可進行登出動作,並在 logout.aspx 程式直接利用 Response.Redirect 轉址回首頁,這樣你就會發現回首頁之後所有歷史紀錄都消失了,就好像沒登入過一樣!^_^