這兩天遇到一個怪問題
目前有一個功能在父頁 面上有一個select 清單
而選擇是會跳出一個子頁面的select 清單上選取
選後接加入,則會傳回父頁面上的select 清單之中
function return_data(form)
{
var isSelected=false;
var sel=form.user_list;
var parent_sel=window.opener.document.getElementById(“user_list”);
for(var i=sel.options.length-1;i>=0;i–) {
if(sel.options[i].selected) {
isSelected=true;
isHave=false;
for(var j=0;j<parent_sel.options.length;j++){
if(sel.options[i].value==parent_sel.options[j].value) {
isHave=true;
break;
}
}
if(!isHave) {
parent_sel.options[parent_sel.options.length]= new Option(sel.options[i].text,sel.options[i].value);
sel.options[i]=null;
} else sel.options[i]=null;
}
}
}
在執行時發現似乎無反應
一定要將 if(!isHave) { } 改成如下才行
parent_sel.options.length++;
parent_sel.options[parent_sel.options.length-1].text= sel.options[i].text;
parent_sel.options[parent_sel.options.length-1].value= sel.options[i].value;
sel.options[i]=null;
真是怪異,在本頁執行new option() 就行,但由子頁執行 父頁就不行
暫時還找不到原因,如果有高手知情,再麻煩告知一下!!
最近在排除程式問題時發現有趣的事
程式之中有用到javascript parseInt function
原本是希望傳入的字串 “02” “03” “04” 可以轉成 2 3 4
所以使用了parseInt function 進行轉換
不過卻有問題,遇到'08″ “09”時 就會轉換失敗
最後是直接在parseInt 後加上使用10進位的方式處理才排除
用法如下:
parseInt(value,10);
不過還真是怪異,預設怎麼會是用8 進位去解析呢?
以前都沒有這種印象
該不會先前寫的程式都會有此問題呢 @@
真慘….
先前在check Regular Expressions時,同事有介紹可以使用QuickREx
還不錯用,所以特別介紹一下!!
相關資訊的連結在此..
more..
http://www.bastian-bergerhoff.com/eclipse/features/web/QuickREx/toc.html
要使用,就要到eclipse 的 Help > Software Updates > Find and Install.
然後按下New Remote Site 新的要安裝的URL 設定 http://www.bastian-bergerhoff.com/eclipse/features.
這樣就可以啦,接下來就一直按下一步即可
安裝完後會要你再重新啟動eclipse
再來就到Window->show view->other 裡面就可以找到QuickREx(如下圖) ,點選後就可以在作業視窗看到啦!!
再來就可以試用看看囉 !!
在test-text 裡輸入要檢測的文章,上方就可以寫上Regular Expression,他會將答合條件的highlight起來!!
最近用到FCKeditor發現他無法像一般的方式進行空值的判斷
找了一下,才知他本身是有提供API 可以呼叫取得
這行就是取得ID內的值
FCKeditorAPI.GetInstance(ID).GetXHTML()
這行就是設定ID欄位的值
FCKeditorAPI.GetInstance(ID).SetHTML(“Default String”)
而ID就是我們使用FCKeditor的變數名稱
不知哪有詳細的API可以看
看來FCKeditor蠻強大的!!
好幾年前寫過線上人數,當初用JSP寫 似乎 沒遇到多大的問題
最近,碰到需要檢測帳號只能同時一個在線上,才遇到了一些問題
一般有了問題才會深入,才更瞭解session的監控原理及模式
唉~~這就是所謂的半調子呀!
Session表示使用者連到系統的請求暫存記錄,每個使用者(瀏覽器)連至系統時,系統會自動給予一組Session ID去辨別這個使用者
而有些連結的資訊就會透過這組session id保留在主機,以便使用者連線使用。
在java Servlet實作session時,可透過監聽session 建立及結束當被觸發時以進行初始化及還原的動作
只要implements HttpSessionListener並實作 sessionCreated 及 sessionDestroyed method即可
或是可以針對session傳出傳入值時進行監聽,如此一來即可在傳入的時候(即使用用HttpSession的setAttribute方法時)
以及移除的時候(即使用用HttpSession的removeAttribute方法或session time out時)觸發valueBound和valueUnbound方法
只要在傳入的object implements HttpSessionBindingListener 並實作valueBound和valueUnbound 即可
這樣就可以在上述提到的時機點觸發相關的方法
因此,我們就可以利用上述特性進行客戶的日誌記錄或上線人數的統計等
而再一提的,如果要做到上線人數的統計或是像我這次記錄使用者只能一組在線上
就還要再使用一個全域的system session,在JSP是叫application (顧名思義就是整個WEB應用系統都可以使用的session)
而在Servlet,可以從session或request 取出ServletContext
(這個等同於jsp的application,有關ServletContext的敘述請參考Servlet規範),
如此就可以利用ServletContext的全局特性,去記錄和整個系統有關的資訊了!!
參考資料:Servlet中如何捕獲Session事件–MaYong – 希賽IT博客,中國最大的IT專業博客
近期留言