2008年12月25日 星期四

網頁離開前跳出確認視窗

當 USER 點選瀏覽器的關閉視窗 X 時,若要詢問 USER 

是否確定要離開,可以透過javascript用以下方法來完成。


window.onbeforeunload



完整 範例參考:


<HTML>
<HEAD>
<TITLE> 輕鬆一下 </TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--//
window.onbeforeunload = function confirmExit(){
return '有尚未儲存的資料,確定要離開嗎?'; //自訂提示
}
//-->

</SCRIPT>
</HEAD>
<BODY >
<P>本程式在<b>關閉</b>之後,會有一個警示畫面產生。</P>
</BODY>
</HTML>


補充:

在ASP.Net 使用這方法時,因ASPX頁面會存在許多會觸發 post back 的 server control,當其中一個 server control 觸發 post back 之後,依據上面的範例,就會跳出警示畫面。我們只是希望當User點選離開(X)時才跳出警示畫面,而非任何控制項都是如此。所以可以更進一步去改良我們的程式。

confirmExit() 是一個內建函式,如果在函式內加上 return 'OOOOO';  就會在警示視窗中出現 'OOOOO'的字眼,但如果只是 return ; 則就不會跳出警示視窗。

所以可以透過一個變數來決定是否要觸發警示視窗。如下所示:



<script language="javascript" type="text/javascript">
var shouldConfirm = true;
window.onbeforeunload = function confirmExit(){
if(shouldConfirm)
return '離開即會放棄基準設定,確定要放棄嗎?'; //自訂提示
else
return ;
}
</script>

如此,假如 ASPX頁面有個控制項叫做 btnSave,我們並不希望壓下 btnSave觸發警示視窗,則可以在btnSave 的 OnClientClick 加上 shouldConfirm=false; ,如此 btnSave 就不會觸發警示視窗。

javascript 錯誤處理


撰寫 javascript 時,如果發生javascript錯誤,會在瀏覽器上直接丟出

錯誤訊息。如果想要避免直接將錯誤丟出來,可以透過

window.onerror

去欄。






做法如下:

<script language="jscript" type="text/jscript">    

    function handleError() {    

     alert('遇到錯誤了');

     return true;  

    }

    

     window.onerror = handleError;

</script>





設定 window.onerror ,並指定對應的處理方法(handleError)。

參考 http://www.chunkysoup.net/basic/breakingjs/







2008年12月23日 星期二

在showModalDialog 裡使用 location.href

在showModalDialog 裡使用 location.href 






遇到一個情況,當我在一個 showModalDialog 視窗使用 javascript 執行
location.href = ' http://ooo.xxx' 之後,很討厭的就開啟了一個新的視窗。
雖然在這個 showModalDialog 頁面的 <head></head>裡有加了一行
<base target="_self" />
但仍然無效。

於是在網路上找到ㄧ篇能解決問題的文章,真的蠻不錯的。

於是,我將自己原本的程式,改成 

<script>   
  window.name="__self";   
  window.open("yoururl","__self")   
</script>

就可以了。

2008年12月9日 星期二

重點新聞

看到 NowNews  的新聞頭條功能,覺得蠻有趣的。看了一下他的程式碼,蠻簡單的。

主要,是將圈起來的地方,讓他能夠定時去做更新的動作。
將程式的寫法整理入下面的連結。