目的:使用者選擇訂單後,能提供更詳細的資料供使用者參考
考慮:
1.按F2鍵 ,開啟新視窗
- window.open
- window.showModalDialog
2.出現個超連結,讓使用者按(如下方的detail)
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這料號,
看這折疊(減號)的link,假如我ㄧ按它就會開啟一個視窗,網址如下:
當然會導致找不到此網址而出現錯誤。
最簡單的解決方式:在(reference.aspx)內的<title></title>下加入
<base target="_self"/> 這一行。
_blank 在無框架的新視窗中呈現內容。
_parent 在即時父代框架組中呈現內容。
_search 在搜尋窗格中呈現內容。
_self 在擁有焦點 (Focus) 的框架中呈現內容。
_top 在無框架的完整視窗中呈現內容。
- 方案二沒甚麼特別,只是出現個超連結,沒甚麼好寫的。
- 方案三,可能是比較好的方式,但主網頁已塞入太多東西,
顧慮到以後修改的問題,我還是把資料顯示在其他網頁好了,下次有用到再來寫。
我是菜鳥!
No comments:
Post a Comment