How to play nicely with jQuery and Greasemonkey
jQuery & Greasemonkey 提供了一小段 Javascript code, 如何在 Greasemonkey 裡面使用 jQuery.
Code:
jQuery & Greasemonkey 提供了一小段 Javascript code, 如何在 Greasemonkey 裡面使用 jQuery.
Code:
Posted by Unknown at 15:58
Labels: greasemonkey, javascript, jquery, snipcode
注意: 第一個額外傳遞參數的語法, 在 IE 上無法執行.
window.setTimeout
時, 都是寫成這樣
Posted by Unknown at 09:55
Labels: javascript
Core JavaScript 1.5 Reference:Global Objects:Array:splice
改變陣列的內容, 可以在移除舊元素的同時, 加進新的元素.
splice
的作用就是單純的將陣列中的元素移除掉.
splice
方法會回傳一個陣列, 裡面包含了被移除的元素. 就算只有一個元素被移除, 回傳的就是包含一個元素的陣列.Posted by Unknown at 08:54
Labels: javascript
目前可用的圖表有:
Posted by Unknown at 14:09
Labels: google code
在產生圖表之前必須將資料進行編碼, 轉成 Chart API 認識的格式. 使用下列其中一種格式:
A
代表 0, B
代表 1, 一直到 9
代表 61, 提供 62 個不同數值的轉換.AA
代表 0, AB
代表 1, 一直到兩個句號(..
) 代表 4095, 提供了 4,096 個不同的數值轉換.Note: 你可能想要計畫性的將資料進行 Simple/Extended 編碼. 可參考 JavaScript snippet for encoding data 這篇說明. 同樣的, 也有好幾位 Chart Group 成員貢獻 API - 可以在 Group 裡面慢慢找或是直接參考 Useful links to API libraries 這個文章.
chd=t:<chart data string>
<chart data string>
是由正數浮點數從 0.0
到 100.0
, 還有一個負數 -1
, 以及分隔符號 |
所組成的.0.0
= 0, 1.0
= 1, 一直到 100.0
= 100-1
來指定一個無效的數值|
符號分隔開來.chd=t:10.0,58.0,95.0|30.0,8.0,63.0
注意: 在 text encoding 中, 會以資料裡最大的值, 將資料轉成百分比, 來當比例.
chd=t:<chart data string>
chds=<data set 1 minimum value>,<data set 1 maximum value>,<data set n minimum value>,<data set n maximum value>
<chart data string>
由正負浮點數組合而成<data set 1 minimum value>
是第一組資料的下限.<data set 1 maximum value>
是第一組資料的上限, 指定 100 時可省略.<data set n minimum value>
是第 n 組資料的下限.<data set n maximum value>
是第 n 組資料的上限, 指定 100 時可省略.|
分隔開來chd=t:30,-60,50,120,80&chds=-80,140
chd=s:<chart data string>
<chart data string>
包含了: A
~ Z
, a
~ z
, 0
~ 9
, 底線(_
), 與當分隔符號的逗號(,
).A
= 0, B
= 1 一直到 Z
= 25a
= 26, b
= 27 一直到 z
= 510
) = 52 一直到 9
= 61_
) 代表指定一個無效的數值,
)將每組資料分隔開來chd=s:ATb19,Mn5tz
其中的第一組資料裡面, A
代表 0, T
代表 19, b
代表 27, l
代表 53, 9
代表 61.注意: 更詳細的介紹請參考 Simple encoding character values
chd=e:<chart data string>
<chart data string>
A
~ Z
, a
~ z
, 0
~ 9
, 連字號(-
), 句號(.
), 底線(_
), 還有當分隔符號的逗號(,
).AA
= 0, AZ
= 25, Aa
= 26, Az
= 51, A0
= 52, A9
= 61, A-
= 62, A.
= 63BA
= 64, BZ
= 89, Ba
= 90, Bz
= 115, B0
= 116, B9
= 125, B-
= 126, B.
= 127.A
= 4032, .Z
= 4057, .a
= 4058, .z
= 4083, .0
= 4084, .9
= 4093, .-
= 4094, ..
= 4095.__
)來指定無效的數值,
)將每組資料分隔開來注意: 更詳細的介紹請參考 Extended encoding character values
_
).maxValue
設定的陣列裡最大的數字稍微大一點, 則在產生圖表時, 最大值跟圖表上方就會保留一小段空間.
Posted by Unknown at 21:57
Labels: google code
使用 chs=<width in pixels>x<height in pixels>
來指定圖表的大小
例如, chs=300x200
產生一個寬 300 像素與高 200 像素的圖表.
除了 map 以外其他所有的圖表最大是 300,000 像素. 另外最大的高度與寬度是 1000 像素. 最大尺寸的例子有 1000x300, 300x1000, 600x500, 500x600, 800x375, 375x800.
而 map 最大的尺寸是寬 440 像素, 高 220 像素.
如果尺寸指定的過小時, 圓餅圖會被剪裁掉一部分. 通常圓餅圖的尺寸建議:
Posted by Unknown at 21:29
Labels: google code
Posted by Unknown at 21:20
Labels: google code
Google Chart API URLs 必須是這樣子的格式:
http://chart.apis.google.com/chart?<parameter 1>&<parameter 2>&<parameter n>
注意: 每個 URL 必須只有一行.每個參數之間使用 (
&
) 符號分隔開來. 你可以指定你所需要的參數, 不論順序. 例如, 這張圖表的 URL:
http://chart.apis.google.com/chart?
chs=250x100
&chd=t:60,40
&cht=p3
&chl=Hello|World
http://chart.apis.google.com/chart? 是 Chart API 的位址
&
是分隔參數用的chs=250x100
是圖表尺寸的像素chd=t:60,40
是圖表的資料cht=p3
是圖表的樣式chl=Hello|World
是圖表的分類稱呼<img>
標籤裡:
<img src="http://chart.apis.google.com/chart?
chs=250x100
&chd=t:60,40
&cht=p3
&chl=Hello|World"
alt="Sample chart" />
注意: 當使用 HTML<img>
時, 要使用&
來取代 (&) 符號.
Posted by Unknown at 16:04
Labels: google code
Google Chart API 的功用是動態產生圖表. 首先來看看 Chart API 的實際例子, 打開瀏覽器並將複製底下這串網址:
http://chart.apis.google.com/chart?cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World
你應該會看到一個這樣的圖案:
Google Chart API 傳回的是 PNG 格式的圖案. 並提供好幾種樣式的圖案: 線性圖, 柱狀圖, 圓餅圖..等. 每種圖案都可以指定尺寸, 顏色, 標籤等屬性.
你可以使用 <img>
標籤在網頁上顯示 Chart API 的圖案.
Posted by Unknown at 15:09
Labels: google code
這兩個範例使用 global 方法, google.feeds.findFeeds
與 google.feeds.lookupFeed
.
首先使用 google.feeds.findFeeds
來搜尋將結果動態的顯示在 FeedControl.
Code:
google.feeds.lookupFeed
, 輸入 Flickr 帳號, 然後動態的展示該帳號的照片.Posted by Unknown at 14:34
Labels: google code, javascript
這個範例使用了高階的 google.feeds.FeedControl
類別顯示一連串的 feeds. 這個類別類似於 AJAX Search API 中的 SearchControl. 這個範例建了 FeedControl 類別, 然後新增了兩個 feeds, 並且繪製出來.
Code:
Posted by Unknown at 14:06
Labels: google code, javascript
示範從單一 feed 取得資料, 並且顯示每個內容的標題.
Code:
item
而 Atom 則使用 entry
.getElementsByTagNameNS
來取得 Digg Feed 中 diggCount
這個增設的資料.getElementsByTagNameNS
來取得 Google Base Feed 中的資料.Posted by Unknown at 16:12
Labels: google code, javascript
Javascript 與 XMLHttpRequest
使用 Same-Origin Policy (SOP). 根據這個規則, 只允許 script 從相同主機的來源存取資料. 這是為了防止使用者遭受到某些種類的 scripting 攻擊, 但同時也限制了開發者撰寫基於 AJAX 的混搭. Google AJAX Feed API 提供一個 workaround 的方法來取得 web 上特殊類型的資料: syndication feeds. 請看 security notes 有更多的細節關於 AJAX Feed API 如何作安全性處理.
接下來的範例將取得 Digg RSS Feed 並且顯示文章標題給使用者看.
google.load("feeds", "1");
title
, description
, 和 summary
, 使用統一的方法來存取 Atom 與 RSS. 舉例來說, JSON 格式在回傳 RSS 屬性 description
時, 使用 JSON 的 content
屬性, 跟 Atom 一樣. 同樣的, RSS 的 pubDate
回傳時是使用 JSON 的 publishedDate
屬性. JSON 格式對於存取標準的 RSS 與 Atom 時是非常好用的, 你不需要考慮到兩種格式之間的差異. 其他細節部分可以參考 JSON result format specification.digg:diggCount
. 其他細節部分可以參考 XML result format specification.digg:diggVotes
.Posted by Unknown at 16:09
Labels: google code, javascript
使用 Google AJAX Feed API 只需要藉由 Javascript 就可以取得任何公開的 Atom 或是 RSS, 更輕易的將資料內容與其他 APIs 混搭在一起.
Google AJAX Feed API 讓開發更加的簡單, 只需要短短幾行的程式碼, 免除複雜的伺服器端代理. 輕鬆快速的整合在網站上.
Posted by Unknown at 10:53
Labels: google code, javascript
http://code.google.com/apis/visualization/documentation/reference.html
目前有四個可以使用, 全部都在命名空間為 google.visualization.*
底下:
google.visualization.Query
裡面的 setQuery
方法.
tq
參數. 這邊要注意的是查詢字串必須使用 Javascript 的 encodeURIComponent
編碼過.
|
Posted by Unknown at 14:41
Labels: google code, javascript
這邊來討論如何製作視覺效果的 Gadget. 典型的視覺效果 Gadget 會發送查詢到 Google Visualization API 資料來源, 並且將傳回來的資料顯示在 gadget 之中.
iGoogle 和 GoogleSpreadsheets 接受任何人開發的嵌入式 gadget. Visualization Gadget 的用途是從支援 Visualization API 的資料來源讀取資料, 然後顯示在 gadget 之中.
首先示範的是將 Google Visualization 資料顯示在 gadget 之中. 你可以從 Google 下載一個範本來進行修改.
Start with a Gadget Skeleton:
_table_query_url
的偏好設定, 這是用來指定資料來源 URL 的設定選項. 當 gadgets 是可以自行設定資料來源時, 都要使用這個偏好設定名稱 _table_query_url
. _IG_RegisterOnloadHandler
這個 gadget 工具, 在 gadget 完全載入時呼叫 loadVisualizationAPI
函數. 而這個函數則是用來載入 Visualization API 跟它的 packages.createQueryFromPrefs
方法來產生 google.visualization.Query
. 這個查詢會自動的從 gadget 喜好設定裡面找出名稱為 _table_query_url
的值來當做資料來源 URL . 建好之後使用 send
方法來向主機讀取資料._table_query_refresh_interval
這個刷新間隔時間(秒), 可以讓 gadget 週期性的從資料來源重新獲取資料. 如果要讓使用者設定刷新間隔, 可以在 gadget header 上加上這些:
Posted by Unknown at 11:14
Labels: google code, javascript
在視覺效果中可以呼叫 google.visualization.events.trigger
來觸發事件. 這個功能需要幾個參數:
this
)google.visualization.events.addListener()
可以為視覺效果註冊事件. 這個方法需要一個物件, 一個聆聽事件, 一個被呼叫的方法. 底下這些示範每一次這在表格列上點擊時會出現提醒.
getSelection()
方法. 這方法回傳使用者選取的 data 的索引. 回傳值是一個陣列, 裡面的每個內容都有 row
跟 column
屬性. 而 row
跟 column
就是資料在 DataTable 裡面的索引值.setSelection(selection)
方法. 這方法也是回傳選取的陣列. 當這方法呼叫的時候, 視覺效果應該在顯示上表示出被選取的項目. 實作 setSelection()
時不可以觸發到 select
事件.Posted by Unknown at 18:40
Labels: google code, javascript
示範如何製作一個將資料顯示在表格裡面的視覺效果:
Seq | '); } for (var col = 0; col < data.getNumberOfColumns(); col++) { html.push('' + this.escapeHtml(data.getColumnLabel(col)) + ' | '); } html.push('|
---|---|---|
', (row + 1), ' | '); } for (var col = 0; col < data.getNumberOfColumns(); col++) { html.push(data.getColumnType(col) == 'number' ? '' : ' | '); html.push(this.escapeHtml(data.getFormattedValue(row, col))); html.push(' | '); } html.push('
draw
方法, 定義在視覺效果類別的原型上. 這個方法接受兩個參數:
http://www.mydomain.com/myvis.js
google.visualization
這個命名空間.
td {color: blue;}
會直接影響到畫面上其他 <td>
, 並非只限於你的視覺效果圖.div
包裝起來, 而所有的 CSS 規則使用在這個 class 名稱底下. 例如, 底下這範例的 CSS 規則只在 class 是 "acme-visualization" 底下的 <td>
上有作用.
draw
方法是所有視覺效果共有的, 但是每個視覺效果都可以擁有各自額外的方法.Posted by Unknown at 11:05
Labels: google code, javascript
Posted by Unknown at 15:13
Labels: google code, javascript
Google Visualization API gadgets 可以使用一種簡便的方式存取資料來源. 對開發者而言, 這代表可以寫一次應用程式然後重複使用在多種不同資料來源上. 對使用者而言, 則是可以擁有多種不同的選擇來處理資料.
Starting from Google Spreadsheets
Posted by Unknown at 14:29
Labels: google code, javascript
視覺效果用來顯示存放在 DataTable
類別裡面的資料. 除了直接使用 Javascript 來產生 DataTable
. 也可以直接向支援 Visualization API 的資料來源查詢取得, 例如, 你可以讀取 Google Spreadsheet 的資料並且使用 Visualization API 來產生視覺效果圖. 底下就要講解如何向支援 Visualization API 的資料來源做查詢取得資料.
你可以使用 Query
類別向資料來源做查詢動作. 這邊講的資料來源指的是資料來源運用程式認可的 URL. 例如, 要取得 Google Spreadsheet 的資料來源 URL, 必需:
http://spreadsheets.google.com?...&key=123ABC
google.visualization.QueryResponse
的參數給這個處理函數. 查詢有成功跟失敗兩種情況, 查詢成功時, 查詢回應裡面會包含 DataTable
, 而失敗的時候會包含一些錯誤的資訊, 而且沒有 DataTable
.Posted by Unknown at 10:35
Labels: google code, javascript
Google Visualization API 處理事件的時候是使用 google.visualization.events
這個命名空間裡的共用函數去註冊 event listeners. 每一個實作 Visualization API 的視覺效果都會有一些觸發的事件. 例如 OrgChart
就有一個 select
事件.
使用 google.visualization.events.addListener()
可以為某個物件加上指定的 event listeners. 例如, 底下個範例就是在每次 click 表格的時候出現提醒對話框.
select
事件就是一個通用事件, 每個可被選取的視覺效果應該使用同樣的方法來處理選取事件.getSelection()
方法. 使用者選取資料的時候會傳回該資料的索引. 而這個方法傳回資料陣列, 每個項目裡有 row
和 column
屬性的物件. row
和 column
代表 DataTable 裡的索引.row
和 column
都代表選取了 cell, 如果只有 row
代表選取一整列, 如果只有 column
代表選取一整欄
setSelection(selection)
方法, 可以傳入陣列, 裡面的每個項目都有 row
和 column
的屬性. 呼叫這個方法的時候, 視覺效果應該在外觀上指出新的選取項目. 實作 setSelection()
時候不會觸發 select
事件Posted by Unknown at 00:14
Labels: google code, javascript
先來一個最基本的 pie chart:
google.load("visualization", "1");
, 以及使用 packages
屬性來指定你要使用的 visualization 名稱:
draw
方法將圖案繪製在指定的容器裡. draw
方法需要兩個參數: 一個是 DataTable, 另外一個是選擇性參數.
draw
方法可以多次呼叫.
Posted by Unknown at 22:58
Labels: google code, javascript
Google Visualization API 可以讓你把各種有結構性的資料來源, 在多種 visualizations 的選擇裡顯示出來. 而且還提供了一個平台讓開發者可以創造, 分享, 重複使用這些 visualizations.
Posted by Unknown at 22:06
Labels: google code, javascript
使用 google.load()
, 指定 library 名稱, 和 version 來載入.
"1.8.2"
版本, 這是完整的指定版本方式. 如果指定 "1.8"
就會取得 1.8.4
, 因為這是 1.8
裡面最高的版次. 同樣的指定 1
, 將會取得 1.9.1
.google.load
還有直接的使用 script urls.
Posted by Unknown at 15:20
Labels: google code, javascript
AJAX Libraries API, 提供了一些受歡迎的 open source Javascript libraries 的 hosting 服務. 透過 google.load()
方法, 來取得這些 Javascript libraries, 包括:
Posted by Unknown at 14:59
Labels: google code, javascript
1. 翻譯 javascript string
Posted by Unknown at 22:37
Labels: google code, javascript
這個範例會示範如何偵測一段文字, 並且把他翻譯成英文.
Posted by Unknown at 20:27
Labels: google code, javascript
解決 jQuery 與 protoype 的衝突方法, 依照這個順序 include .js:
var $jq = jQuery.noConflict();
jQuery
$jq
(function($) {/* code here, you can use $ */})(jQuery);
AJAX Language API, 可以利用 Javascript 來翻譯和判斷網頁上面文字的語言.
Posted by Unknown at 20:27
Labels: google code, javascript