Javascript: 停止動作


阿瑟 發表



STEP1:【前言】
阿得是常常用到這個功能,像是人家按下一個連結,如果進入的網站需要收費,阿得希望讓網友進去之前會先收到confirm視窗決定是否要進入,如果使用者按下否,那...就取消動作...,請大家注意一下,下面的Javascript經過阿得測試好像與一些版本的Netscape有相容性的問題,阿得目前還沒有看到一個完全可以相容於所有瀏覽器的語法,所以...這種是最籠統的了,大家試試看吧。

STEP2:【原始碼】
簡單的停止動作範例:
<script language="JavaScript">
function link1()
{
if(confirm('您即將進入酷必網,確定嗎﹖'))
{
window.event.returnValue=true;
}
else
{
alert("此動作已經被取消");
window.event.returnValue=false;
}
}
</script>

<a href=. target=_self onclick="link1();">進入酷必網</a>


其實這個程式的動作流程很簡單,當您按下link的時候,onclick事件時會觸發link1函式,在link1函式中,如果您按下是則連結動作會繼續,如果您按下否則會跳出一個視窗告訴您動作已經取消並且停止動作。
Confirm視窗的用法約瑟在"介紹if/else"教學中已經提過,阿得在這邊再幫您複習一下,if(confirm())代表的就是如果使用者按下confirm視窗的,為什麼呢﹖問網景和微軟吧,在這邊,如果confirm()不成立(也就是沒有點選)那當然就是否了...
阿得想..大家看到這裡的教學應該大致上都看的懂了,阿得這次就只講解這次的王牌---returnValue,其他的部分看不懂的朋友請參考酷必網其他的Javascript教學文件。
window.event.returnValue=true,window代表本視窗,event代表目前已經觸發的動作(在這個範例裡面是連結到酷必網),returnValue的功能有點類似ASP的一些response物件,就是對於這些已經被觸發的動作做出回應,returnValue=true代表的是繼續這些動作。
window.event.returnValue=false,既然true是繼續,false當然就是攔截並且停止現在已經觸發的所有動作。

STEP3:【另一個方法】
另一種停止動作範例:
<script language="JavaScript">
function link1()
{
if(confirm('您即將進入酷必網,確定嗎﹖'))
{
window.location.href=".";
}
else
{
alert("此動作已經被取消");
return false;
}
}
</script>

<a href=# target=_self onclick="link1();">進入酷必網</a>


這種更easy了,這次是根本不需要用到停止動作,是把連結到酷必網的動作寫在if/else statement裡面。如果confirm()成立,才會連結,而之前的是已經執行開始連結,如果confirm()成立才會繼續,您比較紅色的部份就會發現不同之處。其實這個方法也很好用,而且相容於Netscape(至少阿得手邊的都可以用,其實這句是廢話,要是連if/else與連結都不能用Netscape就不用混了)。
複習一下,window.location.href="路徑"代表連結語法,和<a href="..">功能完全一樣,這是用Javascript的寫法。
return false大家可能都已經在別的Javascript程式中看過,但是return false只會停止Javascript的處理程序,return false並不會停止連結以及Javascript以外的動作,因此之前的那個範例無法使用return false來停止動作。

STEP4:【結語】
別看這章教學短短的,在未來您設計各種類型的網站,如果想要提示網友他們即將執行的動作的話,這個功能會常常用到。記得,Javascript的互動功能其實只是使用者與瀏覽器之間的溝通,對於使用者與伺服器除非您寫伺服器端的script,否則Javascript(指客戶端)是無法達成真正與伺服器本身的互動。

最後更新日期: 11/21/2001 6:19:15 PM