2010年2月26日 星期五

window.location.href和window.location.replace的區別,以acer網站為例

有3個jsp頁面(1.jsp, 2.jsp, 3.jsp),進系統默認的是1.jsp ,當我進入2.jsp的時候, 2.jsp裡面用window.location.replace("3.jsp");與用window.location.href("3.jsp");從用戶界面來看是沒有什麼區別的,但是當3.jsp頁面有一個「返回」按鈕,調用window.history.go(-1);wondow.history.back();方法的時候,一點這個返回按鈕就要返回2.jsp頁面的話,區別就出來了。

當用window.location.replace("3.jsp");連到3.jsp頁面的話,3.jsp頁面中的調用window.history.go(-1);wondow.history.back();方法是不好用的,會返回到1.jsp 。

當用window.location.href("3.jsp");連到3.jsp頁面的話,3.jsp頁面中的調用window.history.go(-1);wondow.history.back();方法是好用的,會返回2.jsp。

因為window.location.replace("3.jsp");是不向服務器發送請求的跳轉,而window.history.go(-1);wondow.history.back();方法是根據服務器記錄的請求決定該跳到哪個頁面的,所以會跳到系統默認頁面1.jsp 。

window.location.href("3.jsp");是向服務器發送請求的跳轉,window.history.go(-1); wondow.history.back();方法是根據服務器記錄的請求決定該跳到哪個頁面的,所以就可以返回到2.jsp。

以上參考window.location.href和window.location.replace的区别

以上簡單的說,如果使用window.location.replace,使用瀏覽器上一頁的按鈕,是不會回到呼叫window.location.replace的那個頁面,而是回到window.location.replace呼叫前的那個頁面。這個運用在跳頁選單中,每按一次下拉式選單,就會使用window.location.replace跳到一個新頁面(事實上是同一個頁面,只是傳值不同而已),如果用window.location.href來做,那麼如果你很頻繁的使用跳頁選單來查詢,那麼當你按上一頁時,看起來都會是回到同一個頁面,如果使用window.location.replace的話,那麼按上一頁,看起來才像是回到上個頁面中。

如果不能體會的話,看看acer網站的例子
http://www.acer.com.tw/acer/service.do?LanguageISOCtxParam=zh&miu10einu24.current.attN2B2F2EEF=3212&sp=page15e&ctx2.c2att1=238&miu10ekcond13.attN2B2F2EEF=3212&CountryISOCtxParam=TW&ctx1g.c2att92=917&ctx1.att21k=1&CRC=4153026338

你可以查詢acer產品的下載檔案,無論您使用跳頁選單,如何多次查詢(每次查詢,事實上都產生一個新頁面),當按回上一頁時,都能跳出acer的網站,回到您進到此網站的前一個頁面。這就是使用window.location.replace的效果。

Read more...

2010年2月19日 星期五

由javascript中取得get參數的example

在php讀取傳入的get參數很簡單,只要用$_GET就可取得。但在javascript中,卻沒有直接可用的函數,因此只能自定義一個函數。

以下為例:
當連結到某一網頁,如http://www.abc.com/test.php?modseq=100

可以在test.php的網頁的javascript中,使用下列語法,取得modseq的get參數值,即tSeq=100

tSeq=getQueryString("modseq");

function getQueryString( paramName ){
  paramName = paramName .replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]").toLowerCase();
  var reg = "[\\?&]"+paramName +"=([^&#]*)";
  var regex = new RegExp( reg );
  var regResults = regex.exec( window.location.href.toLowerCase() );
  if( regResults == null ) return "";
  else return regResults [1];
}

Read more...

2010年2月10日 星期三

如何在php程式中,用Gmail的mail server 發信(php 5.2.12)

在PHP程式中,利用程式自動發信的作法,可以採用phpMailer這個免費的class。在我的使用環境中,php的版本是win32 5.2.12

phpMailer 官方網站
http://phpmailer.codeworxtech.com/

下載 phpMailer
http://phpmailer.codeworxtech.com/index.php?pg=sf&p=dl

依據您使用的 PHP 版本之不同,來下載適合的class。
下載完畢後請解壓縮到指定資料夾中(我把它放在function的資料夾內),


function phpMail($subject,$body,$to){
require_once("function/class.phpmailer.php");
require_once("function/class.smtp.php");

$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true; //設定SMTP需要驗證
$mail->SMTPSecure = "ssl"; // Gmail的SMTP主機需要使用SSL連線
$mail->Host = "smtp.gmail.com"; //Gamil的SMTP主機
$mail->Port = 465; //Gamil的SMTP主機的SMTP埠位為465埠。

$mail->Username = "xxxxxx"; //設定驗證帳號
$mail->Password = "xxxxxx"; //設定驗證密碼
$mail->From = "12345@gmail.com"; //設定寄件者信箱
$mail->FromName = "test"; //設定寄件者姓名

//設定收件者
$mail->AddAddress(33333@abc.com);
//設定密件副本
//$mail->AddBCC("55555@abc.com");

//設定信件字元編碼
$mail->CharSet="utf-8";
//設定信件編碼,大部分郵件工具都支援此編碼方式
$mail->Encoding = "base64";
//設置郵件格式為HTML
$mail->IsHTML(true);
//每50自斷行
$mail->WordWrap = 50;

//傳送附檔
//$mail->AddAttachment("upload/temp/filename.zip");
//傳送附檔的另一種格式,可替附檔重新命名
//$mail->AddAttachment("upload/temp/filename.zip", "newname.zip");

//郵件主題
$mail->Subject="abc";
//郵件內容
$mail->Body = "def";

//附加內容
// $mail->AltBody = '這是附加的信件內容';

//寄送郵件
if(!$mail->Send())
return "郵件無法順利寄出! Mailer Error: ".$mail->ErrorInfo;
}

要注意PHP必須支援SSL,才可用gmail寄信。在win32的php系統中,只要在安裝php的時候,將OpenSSL的dll安裝進來即可。若安裝時未安裝此一dll,再重新執行一次php安裝程式,在repair,remove,change中,選擇change的項目,再把OpenSSL加進來即可。
20100125000.jpg

Read more...

2010年2月3日 星期三

買領牌車(機車)的經驗

很多人可能沒聽過領牌車這個名詞,我也是前一陣子,因為買機車的緣故,第一次聽到領牌車,我自己也買了一台領牌車,比新車便宜了1500元,以下就談談我買領牌車的經驗。

其實領牌車與新車是一模一樣,並不是因為任何瑕疵,或功能的缺陷的原因。因為機車行或業務員的業績,有時會因為差一兩台車,而不能到達一個層級。所以會自己先把車買下來掛牌,並當作自己的業績,所以也有人稱為業績車或掛牌車。

舉例來說,假設某一業務員本月已賣了10台機車,每台車可賺5%,當他賣了第11台車,他可以賺7%。因此他會自己買下第11台車,來賺7%的佣金,等到下個月,再把這台已領牌的機車賣出。掛牌車要看牌子款式以及價位,或機車行的不同,每台機車便宜的價位不一樣,一般而言大約以市價便宜1000-3000的價格賣出。

有人可能會擔心,買領牌車會不會買到已經領牌很久的車子,感覺好像在買中古車一樣。根據我所購買的機車行的說法,基本上領牌車是不會停留在機車行太久的,很快就會賣出。因為與全新車沒什麼區別,但可便宜個幾千塊。所以要買領牌車並不是很容易,要看機會與運氣,一般而言可能在每月初去買,比較能夠買的到,像我剛好在十月初去買,那時店裡還有兩台同款的領牌車,不過也要看他們業績計算的週期而定。

而我所買到的車子領牌日期是九月二十八日,而我是十月三日購買,所以掛牌根本還不到一個星期,真的是與新車沒什麼差別。不過我在網路上看到有人買到領牌近半年,甚至一年的車子,這一點在買的時候最好詢問清楚,以免買到領牌太久的車子,因為如果將來要再出售,也許中古車的行情會比較低,另外一方面,如果真的領牌的時間愈久,可以議價的空間就愈大。

此外領牌車還有其他問題,最大問題是一家機車行可能只有一兩台,所以沒得挑選,像我去買的時候,雖然店裡同樣款式有兩台掛牌車,但老板說掛牌車只有銀色系的,而事實上我是比較喜歡淡藍色的,因為銀色系的機車滿街都是,個人比較不喜歡。可是我一切是以價格為第一順位考慮,所以也就不管太多了。

還要注意的是車的里程數,因為有可能,機車行會把某一台車拿來當試騎車,所以里程數會有一點多,這點也可作議價的參考。

還有注意一下失竊險及第三責任險的保險期間,是從何時起算,是買車日,還是領牌日。如果領牌日是很久以前,這一點更要特別留意。

還有買全新未領牌車與領牌車,到監理站辦理的手續是不同的,全新車是請領新牌,帶身份證及印章即可,而領牌車辦理的是過戶,從機車行過戶給你,所以要帶雙證件及印章。

以上就是個人小小的經驗。

Read more...

  © Blogger templates Psi by Ourblogtemplates.com 2008

Back to TOP