Monday, May 4, 2009

windows.open windows.showModalDialog F2 keycode

目的:使用者選擇訂單後,能提供更詳細的資料供使用者參考

考慮:

1.按F2鍵 ,開啟新視窗

  • window.open
  • window.showModalDialog

2.出現個超連結,讓使用者按(如下方的detail)

image

3.利用如asp.net ajax ModalPopupExtender or DynamicPopulateExtender

  • 採取第一個方案:最大的缺點是現在的瀏覽器會阻擋彈出型廣告視窗(Popup)--所以不予採用

//開發語言 asp.net C#

<script type="text/javascript" > 

//在page_load時幫txt_soNo 文字方塊

//新增一個keydown事件的處理常式f2_keydown

function page_load(sender, e) {
        $addHandler($get("txt_soNo"), "keydown", f2_keydown);
    }

//假如txt_soNo不是空的,再去判斷使用者是否按下F2鍵

//(sender.keyCode==’113’) 這在Firefox及IE 皆可正常運作

function f2_keydown(sender, e) {
   var  so=$get("txt_soNo").value;
   if (so != '') {  if (sender.keyCode == '113') {

window.open("reference.aspx?&soNo=" + so, "參考資料", "height=350px,width=600px,toolbar=no,menubar=no,status=no,resizable=yes,scrollbars=yes");  or
window.showModalDialog("reference.aspx?soNo=" + so, "reference", "status:false;dialogWidth:600px;dialogHeight:400px;dialogLeft:50px;dialogTop:200px"); }  } }

</script > 

參數及語法參考:http://msdn.microsoft.com/en-us/library/ms536651(VS.85).aspx

,以window.showModalDialog方式來開啟網頁(reference.aspx),

在 IE6及7上,我遇到了無法複製reference.aspx上的文字

隨意按個鍵 PostBack 就會開啟新網頁。

無法複製對話視窗文字的問題,請參考下面的例子:

Text Selection in a Modal Dialog

第二個問題,如下圖:

如果我要摺疊(就是按一下減號)LAAB5這料號,

image

看這折疊(減號)的link,假如我ㄧ按它就會開啟一個視窗,網址如下:

image

當然會導致找不到此網址而出現錯誤。

最簡單的解決方式:在(reference.aspx)內的<title></title>下加入

<base target="_self"/> 這一行。

image

補充:HyperLink..::.Target 屬性

_blank 在無框架的新視窗中呈現內容。

_parent 在即時父代框架組中呈現內容。

_search 在搜尋窗格中呈現內容。

_self 在擁有焦點 (Focus) 的框架中呈現內容。

_top 在無框架的完整視窗中呈現內容。

  • 方案二沒甚麼特別,只是出現個超連結,沒甚麼好寫的。
  • 方案三,可能是比較好的方式,但主網頁已塞入太多東西,

顧慮到以後修改的問題,我還是把資料顯示在其他網頁好了,下次有用到再來寫。

我是菜鳥!

No comments:

Post a Comment