公告版位

目前分類:AJAX、JavaScript (7)

瀏覽方式: 標題列表 簡短摘要

http://jqueryui.com/demos/autocomplete/

可以指定source為某一個URL

傳出的參數名稱:term

代表使用者輸入的關鍵字

回傳的格式:JSON

weihsinchiu 發表在 痞客邦 留言(0) 人氣()

這是剛剛在網路上找到的,因為最近在開發的系統中,需要利用時間差,分別啟動不同的功能。

又一時忘了這個setTimeout的function怎麼用,就Google了一下!

剛好看到這一篇,描述的還滿詳細的,剛好可以讓自己複習一下,以下是原文的網址和轉載的內容:

http://www.takka.com.hk/jstutor/ch10/ch10.htm

10.1 setTimeout( )

1. setTimeout( ) 語法例子

2. 用 setTimeout() 來執行 function

3. 不斷重複執行的 setTimeout( )

4. 設定條件使 setTimeout( ) 停止

5. 計分及計秒的 counter

10.2 clearTimeout( )

10.3 Set flag

10.1 setTimeout( )

  setTimeout( ) 是屬於 window 的 method, 但我們都是略去 window 這頂層物件名稱, 這是用來設定一個時間, 時間到了, 就會執行一個指定的 method。請先看以下一個簡單, 這是沒有實際用途的例子, 只是用來示範 setTimeout( ) 的語法。

1. setTimeout( ) 語法例子

練習-69 等候三秒才執行的 alert( )

  在 第 3 章 說到 alert 對話盒, 一般是用按鈕叫出來, 在這練習, 你會看到網頁開啟後 3 秒, 就會自動出現一個 alert 對話盒。

1. 請用瀏覽器開啟示範磁碟中的 timeout1.htm, 這檔案有以下內容:

<html> <body bgcolor=lightcyan text=red>

weihsinchiu 發表在 痞客邦 留言(0) 人氣()

這是我在開發AJAX應用程式時,所使用的設定物件在Browser上可以被拖曳的類別物件!

呼叫範例:

※JavaScript程式

var target_name = "display.SelectDate.layer";

var trigger_name = "display.SelectDate.title";

weihsinchiu 發表在 痞客邦 留言(0) 人氣()

當我們需要從Browser端,取得目前滑鼠位置座標的時候,透過下面的JavaScript function,即可達到我們想要的效果,在這邊分享給大家!

以下的程式碼已經做過相容性測試,確定可以跑在IE, FireFox, Chrom, Safari上面。程式會自動去偵測你所使用的Browser版本,自動使用對應的方式取得滑鼠座標!

※以下是原始碼:

   1: _sys_userAgent = navigator.userAgent;
   2: _sys_browser = "";
   3:  
   4: if (chk_browser("Safari"))
   5:     _sys_browser = "Safari";
   6: else if (chk_browser("Firefox"))
   7:     _sys_browser = "Firefox";
   8: else if (chk_browser("MSIE 7"))
   9:     _sys_browser = "MSIE7";
  10: else if (chk_browser("MSIE 6"))
  11:     _sys_browser = "MSIE6";
  12: else
  13:     _sys_browser = "Others";
  14:  
  15: if (chk_browser("Firefox"))
  16:     document.onmousemove = FF_mouse_point;
  17:     
  18: function chk_browser(str)
  19: {
  20:     if (_sys_userAgent.toUpperCase().indexOf(str.toUpperCase()) != -1)
  21:         return (true);
  22:     else
  23:         return (false);
  24: }
  25:  
  26: function FF_mouse_point(_event)
  27: {
  28:     if (chk_browser("Firefox"))
  29:     {
  30:         try
  31:         {
  32:             MOUSE_X = _event.clientX
  33:                 + document.body.scrollLeft
  34:                 + document.documentElement.scrollLeft;
  35:                 
  36:             MOUSE_Y = _event.clientY
  37:                 + document.body.scrollTop
  38:                 + document.documentElement.scrollTop;
  39:         }
  40:         catch (e)
  41:         {
  42:             window.status = e.Message + " (" + MOUSE_X + ", " + MOUSE_Y + ")";
  43:             return (false);
  44:         }
  45:     }
  46: }
  47:  
  48: function get_mouse_point()
  49: {
  50:     var point = new Array();
  51:     var e = window.event;
  52:  
  53:     if (chk_browser("Firefox"))
  54:     {
  55:         point.push(MOUSE_X);
  56:         point.push(MOUSE_Y);
  57:         return (point);
  58:     }
  59:  
  60:     if (e)
  61:     { 
  62:         if (e.pageX || e.pageY)
  63:         {
  64:             point.push(e.pageX);
  65:             point.push(e.pageY);
  66:         }
  67:         else if (e.clientX || e.clientY)
  68:         {
  69:                point.push(e.clientX
  70:                 + document.body.scrollLeft
  71:                 + document.documentElement.scrollLeft
  72:                 );
  73:             point.push(e.clientY
  74:                 + document.body.scrollTop
  75:                 + document.documentElement.scrollTop
  76:                 );
  77:         }
  78:     }
  79:     
  80:     if (point[0] < 10)
  81:         point[0] = 10;
  82:  
  83:     if (point[1] < 10)
  84:         point[1] = 10;
  85:     
  86:     return (point);
  87: }

weihsinchiu 發表在 痞客邦 留言(0) 人氣()

之前寫了一支OpenWindow2的JavaScript function,讓我們可以方便在開啟新視窗的時候透過POST傳值,避免參數在URL中因為長度太長被截斷的問題!

之後開發過程當中,遇到需要背景傳遞資料出去,但是不希望開啟新視窗,於是用OpenWindow2相同的傳值邏輯,開發一個是呼叫iframe的。

關鍵就在這幾行:

var iframe = null;
var iDoc = null;

iframe = $(str_name);

weihsinchiu 發表在 痞客邦 留言(0) 人氣()

我們常常透過OpenWindow的方式在瀏覽器上另外開一個視窗,然後透過這視窗另外處理某些功能。但是都只能夠過 HTTP GET的方式傳值,萬一你傳的資料太大,就會造成資料截斷的問題,變成傳值不完整!上Google查了一下,發現原來有這個小技巧可以使用,讓OpenWindow也可以透過POST傳值,這真是太好用了!

它的原理也很簡單,只是透過JavaScript字串去產生一個暫時的FORM,把你的參數用TextArea塞值,然後串起來之後,最後加上一段JavaScript自動送出這個表單。這樣就可以讓你的另外一支程式可以完整的接收傳遞的參數值,非常好用,分享看大家參考!

function OpenWindow2(str_url, str_name, str_width, str_height, dt_param)
{
    var oWin = null;

weihsinchiu 發表在 痞客邦 留言(1) 人氣()

在.NET上,我們已經相當習慣使用DataTable這樣的物件來處理大量資料。Browser端呢?

在開發AJAX Web應用程式的時候,我們常常會需要再Browser端處理由Web端拋轉過來的多筆資料,也因為這樣的需求,我就直接在Browser用JavaScript實作出一個DataTable物件。來協助我處理Browser端的多筆資料。

這個概念其實很簡單,就是利用二維的字串陣列來當作DataTable的Browser端記憶體儲存區。而JavaScript的陣列物件其實還滿好用的。

例如:

DataRow = new Array();

weihsinchiu 發表在 痞客邦 留言(0) 人氣()