patw 的筆記、生活、隨筆
JavaScript
[JavaScript] 在 IE 中隱藏/顯示 DIV 中的 Flash 不會重新播放的解法
九月 28th
在某個案件中,需求是點擊 HTML 頁面上的 button 便會以 BlockUI 方式顯示一個包含 SWF 動畫的 DIV 出來,點擊 SWF 上的叉叉可隱藏此 DIV,若使用者再次點擊 HTML button,該 DIV 又會顯示出來並且從頭再播放 SWF 動畫。
在 Chrome 以及 Firefox 上都可以達到上述需求,但到了 IE 上,隱藏 DIV 後再顯示,其中的 SWF 似乎並不會被重新載入,因此會停留在上次播放的最後一格,尚不知這是 IE 對於 Flash 的 Bug 或這才是正常的,經過一番討論跟摸索後試出了解決方法。
※當然也可以採用 JavaScript 呼叫 SWF 中的重新播放事件來解決,但此次並不是採用此方法解決。
[Facebook] 邀請已過期(expired) 的錯誤與解法
五月 5th
近日開發活動網站的 Facebook 應用程式時,在發送應用程式好友邀請(fb:request-form & fb:multi-friend-selector)時,使用者接收到邀請,點擊按鈕後,只會看到「邀請已過期」,並不會被導向到活動網站。
同事研究後發現,有兩個問題點會導致這樣的結果:
1. fb:request-form 的 action 導向到不同的網域。
2. fb:request-form 中的 content 屬性,少加了 fb:req-choice 按鈕標籤
[Facebook] 發送邀請對話框中的送出按鈕,英文字自動轉小寫的問題
五月 4th
最近在製作 Facebook 聯外通的專案,專案中使用 Facebook JavaScript SDK 來製作,其中有項功能是發送邀請給好友,如下圖這樣:
詭異的是,明明 fb:request-form 中設定的 type 值是 "HELLOWORLD程式邀請",但顯示出來卻是 "Helloworld程式邀請",英文字僅有首字是大寫,後面的字全部自動變成了小寫。
[網頁] Flash ExternalInterface.call Javascript 方法,於 IE 引發「’null’ 是 null 或不是一個物件」錯誤的解法
四月 28th
最近這個案子,有使用到 Flash ExternalInterface.call 網頁上的 Javascript function 的動作,測試過程中,於 IE 中一直會引發下面這段錯誤訊息:
訊息: ‘null’ 是 null 或不是一個物件
行: 1
字元: 111
程式碼: 0
[Facebook] 取得粉絲專頁資訊與最新一筆主題的方法 (PHP/jQuery/ASP.NET(C#))
三月 15th
想要取得粉絲專頁(粉絲團頁面)的公開資訊,以及該粉絲團最新一筆主題該怎麼做呢?
這邊分成三種版本來講:PHP、jQuery 與 C#.NET。
※由於粉絲專頁幾乎是公開資訊,從 Graph API 就可取得。因此其實也可以不用做 app,直接就可以透過 Graph API 撈取。這邊只有 PHP 是用老作法。
[jQuery] 使 ASP.NET 的 DropDownList 支援選項分組(optgroup)
三月 2nd
由於 ASP.NET 的 DropDownList 控制項不支援 optgroup 標籤,就無法做選項分組的功能 ..
後來想用 jQuery 實現此一功能,我寫成 plugin 了,可參考一下:
把這段 code 存成 optgroupTrans.js:
$.fn.optgroupTrans = function() {
var items = $(this);
var groupnames = [];
for (var i = 0; i < items.length; i++) {
if ($(items[i]).attr("optgroup") != null) {
groupnames.push($(items[i]).attr("optgroup"));
}
}
//groupnames = $.unique(groupnames);
groupnames = uniqueArray(groupnames);
for (var i = 0; i < groupnames.length; i++) {
$("option[optgroup='" + groupnames[i] + "']").wrapAll("<optgroup label='" + groupnames[i] + "'>");
}
function uniqueArray(a){
temp = new Array();
for(var i = 0; i < a.length; i ++){
if(!contains(temp, a[i])){
temp.length+=1;
temp[temp.length-1] = a[i];
}
}
return temp;
}
function contains(a, e){
for(j=0;j<a.length;j++)if(a[j]==e)return true;
return false;
}
};
[JavaScript] Shadowbox 燈箱效果於父視窗展示 iframe 頁中的圖片 Gallery
十二月 29th
好,我知道這個標題相當拗口 XD
前幾天寫了篇 [JavaScript] ColorBox 跨越 iframe 顯示完整的黑底(overlay) ,但詢問的網友表示他希望能展示圖片群組,不過ColorBox 的官網,關於 Opening ColorBox in the parent of an iframed document 的這段,最後提到:
Note that grouping will not work with this format since the parent document can not access the content of the iframe to see if any of those elements share a rel attribute value.
也就是用這種方法的話,是無法取得 iframe 中元素的 rel 值的,因此也就無法展示圖片群組了。
也許可以修改以達成目的,但目前還沒空細細研究他的 Code .. 於是就偷懶先找其他替代方案囉
經過連來連去的找尋,找到 Shadowbox.js 這套燈箱效果是可以達成在 iframe 的父視窗展示圖片群組的!以下就來看看做法吧。
[AJAX] 跨網域取得/存取資料
十二月 21st
[AS3][JavaScript] Facebook 發佈訊息的方法
十一月 29th
本篇延續 [AS3] Facebook 朋友列表在 Flash 中用捲軸方式呈現 這篇,一樣用 Jozef Chúťka 前輩所寫的 Facebook AS3 Graph API 作法,來發佈訊息到塗鴉牆上。(由於 Connect 時就應用程式就會要求發佈塗鴉牆的權限,因此這種方法就不會跳出任何發佈視窗喔)
此外也附加了一個以 JavaScript 方式發佈塗鴉牆的方法,這個就會跳出常見的發佈訊息小視窗囉。可以依需求搭配使用~
Facebook AS3 Connect 方法在此一樣不提,請自行參考教學連結。
※ 其中要注意的是,發佈時需發佈成 Flash Player 10 版本,否則在 IE 中會無法在 connect 後正確 authorized!會一直跳出 callback.htm 頁面卻無法正確授權。為了這個問題卡很久,需特別注意。

近期迴響