2009年10月27日 星期二

判斷使用者是否正選取本頁面

在製作聊天室的網頁時,需要使用到這個功能!

例如有人對你說話時,而你並不在聊天室的那個頁面視窗時!

可以經由這個判斷來提醒使用者,如果沒有在聊天室頁面,

就將網頁的TITLE顯示如"XXX對你說"類似的資訊!

這樣就能達到不在聊天室也能知道是不是有人對你說話了!

下面是判斷的程式碼:

<script type="text/javascript" src="../Scripts/prototype.js"></script>

var _FOCUSED = true;
//適用IE
if(navigator.userAgent.indexOf("MSIE") > 0){
Event.observe(document, 'focusout', function(){
_FOCUSED = false;
}, false);
Event.observe(document, 'focusin', function(){
_FOCUSED = true;
}, false);
}
else{
//適用FF
window.onblur = function(){
_FOCUSED = false;
}
window.onfocus = function(){
_FOCUSED = true;
}
}


2009年10月14日 星期三

解決IE6的PNG透明圖

在IE6中並不支援PNG的透明圖片,但可依照下面方法達到透明圖。

一開始需載入jquery.js與jquery.ifixpng.js的套件,

還有一個重點就是需要將此套件使用到的圖片 pixel.gif 儲存到 images/pixel.gif 中,

若想要更改圖片擺放位置,可以到query.ifixpng.js檔案中搜尋"images/pixel.gif"並修改即可,


下面是將全部的物件都使用透明化的概略程式碼
==============================================
<script type="text/javascript"> 
<!--  
$(function(){
     $("*").ifixpng(); 
}); 
//--> 
</script>
==============================================

若只針對PNG來做透明化可用:$('img[@src$=.png]').ifixpng();

2009年7月22日 星期三

Smarty樣板常用語法

宣告變數
{assign var=v value=1default:0}

foreach用法
{foreach from=$items item=value}
show:{$value}
{foreachelse}
is empty.
{/foreach}
詳細用法請參考:http://www.smarty.net/manual/en/language.function.foreach.php


if用法
{if $var=="aa"}
var:aa
{elseif $var=="bb}
var:bb
{else}
var:cc
{/if}

section用法
{section name="forLoop" start=1 loop=10}
forLoop is 1 to 10
{/section}



參考網址:http://www.jaceju.net/blog/?cat=8

2009年7月21日 星期二

JavaScript常用內建函數

  • confirm(String)
    跳出詢問視窗,有是和否的選項可選擇,選是則傳回True,否為False。
  • alert(String)
    跳出訊息視窗。

JavaScript的內建字串函數

  • indexOf(findString, [startingIndex])
    傳回某字串在字串物件內的位置。 findString 是要找尋的字串; startingIndex 是選擇性參數, 表示要由字串物件開頭的第幾個字元開始找尋, 如果沒有指定, 就由開頭第一個字元開始找。 如果找不到該字串, 就傳回 -1。 註:字串的第一個字元的位置是 0。
  • lastIndexOf(findString, [startingIndex])
    與 indexOf 相似, 不同之處在於 lastIndexOf 是由字串結尾開始找, startingIndex 也是由字串結尾數起。
  • toUpperCase() 和 toLowerCase()
    將 text 字串變數內的所有字元轉成大階或小階
  • charAt(index)
    傳回字串物件內某個位置的字元。 index 是字串物件內的位置, 數值可以由 0 至text.length - 1
  • substring(firstIndex, lastIndex)
    傳回字串物件某個部份的字串。 firstIndex 和 lastIndex 分別是該部份字串在字串物件內的開頭和結尾位置。
  • escape(string)
    傳回 string 的 16 進制編碼得出來的字串
  • eval(string)
    把 string 當作 JavaScript 的敘述來執行
  • isNaN(test_value)
    檢查 test_value 是否"非數目"型態 (is Not a Number)
  • parseFloat(string)
    傳回 string 轉成浮點小數後的數目
  • parseInt(string, base)
    傳回 string 轉成 10 進制後的整數; base 是 string 的數制, 它是選擇性的參數, 如果不指定就把 string 當作 10 進制。
  • unescape(string)
    傳回以 16 進制編碼字串的原本字串, 功能與 escape() 剛好相反
  • length
    取得字串的長度
  • charCodeAt
    傳回字元的 ASCII 值
  • fromCharCode
    將 ASCII 值轉成字元


參考網址:
http://www.2cdclasses.com/?action-viewthread-tid-540 ,
http://taiwantc.com/js/js_tut_b_string0.htm

2009年6月24日 星期三

使用JavaScript的window.open開啟新視窗

window.open('開啟網址,'視窗名稱', '參數設定','記錄設定');

open函數中的四個參數說明如下所示:

[開啟網址]
新視窗的網址。

[視窗名稱]
新視窗的識別名稱,可為空字串,此用名稱來對此視窗作一些操作指令,如:關閉…等等。

[參數設定]
設定視窗的屬性(如:選單、工具列、視窗大小…等等)。
可設定的屬性如下:
  • width:定義視窗寬度,最小值是 100。
  • height:定義視窗高度,最小值是 100。
  • resizable:是否能調整視窗大小,設定值為:yes(default)和no(或1與0)。
  • menubar:是否顯示主功能表,設定值為:yes(default)和no。
  • toolbar:是否顯示工具列,設定值為:yes(default)和no。
  • location:是否顯示網址欄位,設定值為:yes(default)和no。
  • scrollbars:是否顯示捲軸,設定值為:yes(default)和no。
  • status:是否呈現狀態列,設定值為:yes(default)和no。
  • directories:是否呈現額外的按鈕(例如:「連結」列,以及「標準按鈕」以外的其他按鈕),設定值為:yes(default)和no。
  • copyhistory:是否複製原有瀏覽器視窗的瀏覽歷程(history),設定值為:yes(default)和no。
  • fullscreen:是否以全螢幕開啟新視窗(適用IE),設定值為:yes和no(default)。
  • left:新視窗的 X 座標。
  • titlebar:是否顯示標題列,設定值為:yes(default)和no。
  • top:新視窗的 Y 座標。

[紀錄設定]
新視窗是否繼承原視窗之瀏覽記錄,輸入的值有兩種

(1). true =>表示要繼承,此為預設值
(2). false=>表示不要繼承。

[注意事項]
在IE7使用時,視窗名稱不可有空白,不然可能會發生"錯誤的引數"的錯誤!


參考網址:
http://www.study-area.org/coobila/tutorial_275.html
http://swf.com.tw/?p=46
http://weblog.gilbert.tw/public/scripts/js_windowopen.html

2009年6月18日 星期四

增加鎖右鍵或其它防止COPY頁面資訊的JS基本語法

只要在body標籤中加入相關屬性的設定,即可簡單的防止COPY頁面資訊,如下面所描述

<body oncontextmenu="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()">

也可打在javascript的標籤中

<script type="text/javascript">
document.oncontextmenu = function (){ return false;}
document.onselect= function (){ document.selection.empty();}
document.oncopy= function (){ document.selection.empty();}
</script>

2009年6月14日 星期日

使用windows工作排程執行網頁,執行後並關閉

在製作訪客的計數器時,有遇到一個小功能,那就是當一天結束後需要將當日訪客歸零,

這時我使用了windows系統本身的工作排程,只要新增一個工作使它每天00:00時候執行某網頁,

而此網頁就是將當日訪客的數字歸零的流程,則該如何製作ㄧ個批次檔.BAT來執行網頁呢?

方法很簡單,先建立個新txt檔案,將它改名為test.bat並在開啟檔案編輯它,而內容如下:

test.bat
===========================================
cd C:\Program Files\Internet Explorer\
iexplore "http://127.0.0.1/"
===========================================

首先是到要使用的瀏覽器程式路徑(cd C:\Program Files\Internet Explorer\),

再來就是使用此瀏覽器執行檔(iexplore)來執行想要網頁(http://127.0.0.1/),

請注意網址需要使用雙引號"包起來,這樣網址中有參數時加了&的字元才不會出錯

這樣就大功告成了,由於開啟網頁並讀取結束後它不會自己關閉,

所以可在網頁中加入JavaScript的關閉視窗語法,程式內如下:
===========================================
<script language="javascript">
window.opener=null;
window.open("","_self");
window.close();
</script>
===========================================

自動關閉視窗的JS語法參考

2009年5月5日 星期二

各種轉UTF-8編碼的函數

[Java]
會處理#字元為%23,空白字元轉換為+,中文字拆開每BYTE處理為ASCII

第二個String 為編碼格式(UTF-8,UTF-16等)
java.net.URLEncoder.encode(String args,String args)
java.net.URLDecoder.decode(String args,String args)

[JavaScript]
會處理#字元為%23,空白字元轉換為+,中文字處理為UniCode
escape(String args)
unescape(String args)

不會處理#字元,空白字元轉換為%20,中文字拆開每BYTE處理為ASCII
encodeURI(String args)
decodeURI(String args)

會處理#字元為%23,空白字元轉換為%20,中文字拆開每BYTE處理為ASCII
encodeURIComponent(String args)
decodeURIComponent(String args)

[PHP]
會處理#字元為%23,空白字元轉換為+,中文字拆開每BYTE處理為ASCII
urlencode
urldecode

會處理#字元為%23,空白字元轉換為%20,中文字拆開每BYTE處理為ASCII
(RFC 1738 )
rawurlencode
rawurldecode



參考網址:用javascript轉UTF-8編碼

2009年2月22日 星期日

避免沒斷行文字破壞網頁格式

經常在製作網頁時,遇到的一個問題!

就是表格中有連續英文或數字太長的話,都會將版面用亂!

所以在網路上找到了將文字斷行的解決方法!


參考網址為:http://blog.blueshop.com.tw/petlife/

只要在<head></head>標籤間加入下面語法即可:

<style type="text/css">
<!--
td {word-break:break-all}
-->
</style>