發表文章

目前顯示的是 十月, 2013的文章

給 Fedora 19 一個好用的螢幕擷取軟體吧!shutter

圖片
話說 Fedora 19 中內建的螢幕擷取軟體真是不好用。而且擺放的位置也很難找。
Fedora 19 原本的螢幕截圖軟體
我比較不喜歡的是,他在拍完後自動儲存,沒有經過編輯的動作或是給任何的提示。用起來怪奇怪一把的。
總之,有其他的軟體可以用吧!現在我要推薦的就是另一套叫做 shutter 的

首先,我們來安裝吧!這個很簡單,有在 yum 資料庫裡面的安裝都是小事。
$sudo yum -y install shutter
安裝完以後我們也是要幫他建立一下快捷鍵,總不會每次都要去找這個工具出來用吧。啟動這個軟體的指令就是
shutter --select






接下來請自行摸索,因為他是中文的。而且點選你設定的快捷鍵後就會自動出現很清楚的說明。自己試試看吧!


jQuery 的 AJAX 教學 - POST JSON 資料

自從 AJAX 開始風行起來後,JSON 交換資料的 API 就越來越常被用到。
之前我們在 jQuery解析遠端JSON資料  中有說到 $.getJSON() 這個函式。不過不是所有的東西都用 GET 來傳遞資料的吧!

所以我們這次來試試看用 POST 的方式來傳遞 JSON 資料。
首先我們先產出 JSON 資料,產出的方式請參閱:
JavaScript 將 Array 和 Object 轉成 JSON

然後真的要開始了(那剛剛在幹嘛?)

$.post()的函式介紹
$.post('呼叫路徑','送出資料(我們的 JSON)',取回資料的動作,格式);
有看懂嗎?我還是來解釋一下好了。除了第一個參數以外其他的都非必填(如果你只是要叫 API 端執行,然後我們什麼都不管的話):
最後一個參數:格式可以填寫 json 或是 xml。如果不指定的話會自動判斷,所以我們其實不用管他。


範例:
$.post('api.php',{member_id:"123456",member_name:"James Wolf"},function(callback){ alert(callback); },json);

以上面的例子來說:我們就是把 {member_id:"123456",member_name:"James Wolf"} 這段的 JSON 資料 post 給 api.php 。
當api.php 有回傳值的時候。就會傳入到 callback 這個變數中交給 funciton(callback){}執行。
至於function 中你要執行什麼事情就自己看著辦吧!我這邊用 alert 其實是看不出東西來的,因為如果回傳是 json 的話,alert 出來的畫面會是 [Object][Object]



參考資料
jQuery ajax - post() 方法

JavaScript 將 Array 和 Object 轉成 JSON

一直都在作 php 的後端工程,對於 php 來說轉換成 JSON 格式只需要使用 json_encode 這個函式就可以。
那麼如果要在 JavaScript 中產生 JSON 呢?

第一個動作:先宣告會用到的 Array 和 Object

var arr = new Array(); var obj = new Object; 然後我們用迴圈把 obj 的內容塞進去到 array 中
for (i = 0; i < 10; i++) { obj.color = 'red'; obj.doors = 4; obj.mpg = 23; arr = arr.concat(obj); } 提示一下: concat 這個函式是用來作陣列的堆疊。所以陣列 arr 裡面就會有很多的 obj 每個 obj 裡面會有三個值
最後利用 JSON.stringify(arr) 把陣列轉成 JSON
alert(JSON.stringify(arr));

相關連結請參考:
JSON.stringify 函式 (JavaScript)

javascript 取得網址列的 get 參數

在 PHP 中要取得 GET 參數非常容易,只需要 $_GET['參數名稱'] 就可以了,但是對於 JavaScript 來說就不是一件容易的事情,因為好像沒有內建的函式可以使用。所以我們自己作一個吧!


function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; }
之後只要載入這個 function 然後呼叫他就可以解析出來摟

利用 jQuery 管理 cookie

第一件事情
jQuery 並沒有內建這個功能,但是可以利用 plugin 的方式
請自己載入以下的CDN路徑
http://cdn.jsdelivr.net/jquery.cookie/1.3.1/jquery.cookie.js

接下來就可以利用 jquery 的方式來操作 cookie 瞜~
我個人覺得這個比原生的 js 合理多了
基本操作如下:

cookie 設定
$.cookie('key', 'value', { path:'/', expires: 5 });
cookie 取得
$.cookie('key');
cookie 刪除
$.cookie('key',null);
參考資料

(jQuery)Cookie的新增、刪除、修改