2011年7月29日 星期五

心得 Youtube 等 flash 檔案遮住 css 下拉式選單

  使用下拉式選單,若下面有嵌入 flash 的話 使用一般的 object, embed 標籤下的話 ( youtube 中 影片右鍵可以 '複製嵌入程式碼') , 則youtube 的影片在網站上的就會顯示在最上層

若要避免這種情況的話,可以使用 swf object 來必面這個問題

[1] 有引用swf範例code 如下


<script type="text/javascript" src="swfobject.js"></script>
<div id="ytapiplayer">
You need Flash player 8+ and JavaScript enabled to view this video.
</div>

<script type="text/javascript">

var params = { allowScriptAccess: "always" };
var atts = { id: "myytplayer" };
swfobject.embedSWF("http://www.youtube.com/e/VIDEO_ID?enablejsapi=1&playerapiid=ytplayer",
"ytapiplayer", "425", "356", "8", null, null, params, atts);

</script>




VIDEO_ID 是上傳youtube , youtube 給的 ID , 可以從連結影片的路徑中


找到





[2] 中有提到 在 params 中 加入 wmode: "transparent" 參數設定可以解決這個問題

修正後的 變數如下,在此我順便設定了允許全螢幕的選項:


var params = { allowScriptAccess: "always" , allowFullScreen: 'true' , wmode: "transparent"};






詳細 的 params 變數可以參考[3].

參考:
[1]: YouTube API and Tools
[2]: Clayliao.f2e , 解決Flash 遮住 javascript 的小技巧
[3]: swf document

2011年7月28日 星期四

心得 Google Search API

    Google Search api 改版後,現在可以分成 個人 或商用的 ,最顯著的差異就是 商用不會有廣告,但要付錢, 申請的方式也是和google 帳號綁在一起,
  Sites to search: 的地方 可以所定要查詢的網站名稱

 設定完之後會給 javascript 和 css 檔 複製到網頁上就可以使用


  此外, [2] 中也提供了相關API 的定義,像 .execute(query)  就是 查詢query 的字串




參考:
[1] : Google Custom Search
[2] : Google Custom Search Element

2011年7月26日 星期二

心得 將Google app engine 的網站 掛到 Google Apps 的網域下

無法查看此摘要。請 按這裡查看文章。

2011年7月18日 星期一

轉貼 google app engine enhancer error 解決方式

原因可能是google 沒有將一些class enhancer 起來, 不過搜尋後找到一個解法 就是


設定 eclipse 的 ORM 的 path(Project Settings -> Google -> App Engine -> ORM) , 手動引用使用到的class


如圖:
















2011年7月5日 星期二

心得 Google app engine deletePersistentAll

JDO 中,可以利用 deletePersistentAll 來刪除符合條件的資料


例如.

javax.jdo.Query query = pm.newQuery(Person.class);
query.setFilter("height > 100");
query.deletePersistentAll();




不過若因為符合資料太多 則會造成 java.lang.OutOfMemoryError: Java heap space 的錯誤(heap 空間不夠),

可以考慮其他方式, 因為 google app enigne 的查詢只允許 1 個範圍的過濾查詢[2], 目前想到的方式是用order 後 取出前幾位,之後在將每個屬性判斷否符合條件在刪除, 用起來還真不方便....







參考

2011年7月4日 星期一

心得 jquery 動態新增欄位

參考以下的來源 利用 jquery 達成動態的新增移除 text欄位





以下是 code:






<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=BIG5">
<title>Test Jquery dyamic</title>
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1.4.4");



function AddItem() {

document.getElementById('newitems').innerHTML +=

"<div class=\"rowElem\" >"+
"<label> ITEM ID: </label>"+
"<input name=\"serid\" id=\"serid\" type=\"text\" maxlength=\"11\"/>"+
"<input type=\"button\" value=\"add\" onclick=\"AddItem()\" /> "+
"<input type=\"button\" value=\"delete\" onclick=\"DeleteItem()\"/>"+
"</div>";



// 先抓到是哪一個 tr
var sids= $('input:button', '#reg');

if(sids.length<4){
var _count= sids.length-3;
sids.eq(_count).hide();
}
else{
var _count= sids.length-3;
sids.eq(_count-1).hide();
sids.eq(_count).hide();
}


}


function DeleteItem() {

// 先抓到是哪一個 tr
var txts= $('input:text', '#reg');

var _count= txts.length-1;
// 移除它
var rownow = txts.eq(_count).parent();
rownow.remove();




// BTN 顯示先前的
var btns= $('input:button', '#reg');

var _bcount= btns.length-1;
if(_bcount==0){
btns.eq(_bcount).show();
}
else{
btns.eq(_bcount-1).show();
btns.eq(_bcount).show();
}

}

function check(){

var txts= $('input:text', '#reg');
var _count= txts.length;
var _str ="";
for (var i=0;i< _count; i++){
_str = _str +i + ": " + txts.eq(i).val()+" ";
}

alert(_str);
}




</script>
</head>
<body>


<div id ="fromBody" >
<form id ="reg" method="post" action="#" ">


<div class="rowElem">
<label> ITEM ID: </label>
<input name="serid" id="serid" type="text" maxlength="11"/>
<input type="button" id="additem" value="add" onclick="AddItem()" />
</div>

<div id = "newitems">

</div>

<div class="rowElem">
<input type="submit" value="Send" onclick="check()"/>
</div>

</form>


</body>
</html>










注意 落利用他的jquery plugin 要注意 DOM的資料結構會變動,如圖使用 jqTransform