重定向跳轉——javascript
重定向的概念及目的
當點選一個URL來訪問一個網頁x,但在內部你背定向到另一頁Y,僅僅是因為頁面重定向。這一概念是從不用於JavaScript頁面重新整理,可能有各種原因,為什麼想從原來的頁面重定向,原因如下:
1)如果不喜歡現有的域名,可以重定向到一個新的。同時,要引導所有訪問者到新網站。在這種情況下,可以保持舊的域名,但放在一個頁面到一個頁面重定向使所有的舊域名遊客可以來到新的域名
2)基於瀏覽器的版本,或者名字不同的頁面,也可以根據不同的國家,而不是伺服器端網頁重定向,可以使用客戶端頁面重定向到登入使用者在相應的頁面。
3)搜尋引擎可能已經收錄新頁面,不過,在移動到另一個域名,那麼不喜歡失去訪客通過搜尋引擎來了。所以,可以使用客戶端頁面的重定向。但是。這不應該做的,使搜尋引擎傻瓜,否則,這可能讓網站取締。
如何實現重定位
示例1:
這使用JavaScript在客戶端頁面的重定向是非常簡單的,網站訪問者重定位到一個新的頁面,只需要新增在head部分加一行如下:
<head>
<script type="text/javascript">
<!-- window.location="http://www.newlocation.com" -->
</script>
</head>
示例2:
可以將其重定位到一個新的頁面之前顯示相應的資訊給網站訪客,這將需要一個位時間延遲載入新頁。以下是簡單的例子來實現相同的:
<head> <script type="text/javascript"> <!-- function Redirect() { window.location = "http://www.newlocation.com"; } document.write("You will be redirected to main page in 10 sec."); setTimeout("Redirect()",10000); --> </script> </head>
這裡的setTimeout()是一個內建的JavaScript函式,可用於給定的時間間隔之後執行另一個函式。
示例3: 以下是例子是重定向基於其瀏覽器不同的網頁訪問者:
<head> <script> <!-- var browsername = navigation.appName; if(browsername == "Netscape") { window.location="http://www.location.com/ns.html"; } else if(browsername =="Microsoft Internet Explorer") { window.location ="http://www.location.com/ie.html"; } else{ window.location = "http://www.location.com/other.html"; } --> </script> </head>
常用JavaScript重定位跳轉方法:
第一種:
程式碼如下:
<script language = "javascript" type="text/javascript">
window.location.href = "http://shanghepinpai.com";
</script>
第二種:
程式碼如下:
<script language="javascript">
alert("返回");
window.history.back(-1);
</script>
第三種:
程式碼如下:
<script language="javascript">
window.navigate("http://shanghepinpai.com");
</script>
第四種:
程式碼如下:
<script language="javascript">
self.navigate("http://shanghepinpai.com");
</script>
第五種:
程式碼如下:
<script language="javascript">
alert("非法訪問!");
top.location = "http://shanghepinpai.com"
</script>
javascript實現強制重定向值HTTPS頁面
有時候需要網頁強制切換成HTTPS,即使使用者已經訪問了HTTP版本,原因可能是你不想讓使用者使用http來訪問,因為他不安全,要做到這個很簡單呢,如果不想用PHP或者Apache的mod_rewrite來做這件事,用JavaScript也是可以的。程式碼如下:
<script type="text/javascript">
var targetProtocol = "https";
if(window.location.protocol != targetProtocol) {
window.location.href = targetProtocol +
window.location.href.substring(window.location.protocol.length);
}
</script>