-
同事被一個鬼怪問題困住: 新裝好Virtual Server 2005 R2 SP1,複製完VM並掛上,卻在用管理介面網頁界面啟動VM時出現Javascript錯誤: 'document.getElementById(...)' is null or not an object 而該錯誤導致VM無法開機! 換句話說,安裝VS2005 R2 SP1跟Copy超大vhd的功夫變成在做心酸的。 茶包射手出馬,心想既然是Javascript問題,應該不難追查。打開 IE Developer...
-
今天在處理jQuery自動完成時遇到一個問題。就以 jQuery自動完成懶人包 的例子說起: 在findValue(li)中,使用了Hard-Coding的方式將額外的值填到txtSymbol及txtCName: function findValue(li) { if (li == null) return alert("No match!"); $("#txtSymbol").val(li.extra[0]); $("#txtCName"...
-
寫了一個Javascript函數抓出字串中以#符號夾住的文字片段: function extract(s) { var re = /#.+#/; var p = re.exec(s); if (p) return p[0]; else return "" ; } function test(s) { var t = extract(s); alert( "String:" + t + "\nLength:" + t.length); }...
-
同事在網頁上用了 ASP.NET TreeView控件 ,但專案規格中需要由Javascript端完成新增節點的動作,很不幸地,這不是ASP.NET TreeView內建支援的功能。 如果時間充裕的話,我會建議改用jQuery TreeView Plugin,較符合大量Client端客製的需求,但因時程迫在眉睫,且只差這個小功能,所以大家不要考究"破解"ASP.NET TreeView前端設計的意義,把它想像成打破水缸救人就好。 寫完這段程式,等同於小小地破解ASP.NET TreeView前端HTML與Script設計...
-
Abstract : This is a code generator to declare reflected .NET class of Javascript object using JSON.NET JObject features. 這是跟同事在討論系統架構時冒出的議題... 網頁前端將使用者輸入結果組裝成結構單純的Javascript物件,一個欄位對應一個屬性,但有些欄位如電話、地址等可能有多筆,故屬性型別除了字串、數字外,也有會有電話號碼物件陣列,電話號碼物件則包含國碼、區碼、號碼三個屬性...
-
做實驗驗證了Silverlight傳送Dictionary<string, string>到Javascript端的行為。 依據 MSDN文件 的說法: By default, properties and return values typed as IDictionary are returned by reference, using a JavaScript wrapper that is similar to a dictionary. Javascript Dictionary...
-
Silverlight傳遞Managed Type到Javascript端時,跟.NET中的原則相仿,Value Type是使用By Value方式,而Reference Type則是By Reference。 用一個範例來驗證這一點: [ScriptableType] public class RefTypeSample { public string Name { get; set; } } private RefTypeSample _rt = new RefTypeSample() { Name...
-
先前示範過 將JS端的物件傳入Silverlight ,現在來逆向操作,把Managed Type傳回JS世界! 宣告一個ColumnSetting類別,其中特別設一個列舉(ColumnTypeEnum)觀察它的傳換結果。另外,宣告兩個函數: SL2JS()傳回ColumnSetting,JS2SL(ColumnSetting)傳入ColumnSetting當參數。 //欄位型別列舉 public enum ColumnTypeEnum { TextBox, NumericTextBox, ComboBox...
-
ScriptObject提供了GetProperty, SetProperty可以讀取及修改屬性,但是獨缺for (var p in obj)的做法一口氣列出Javascript物件所有的屬性及方法。 原本有個構想,Sivlerlight Method在承接Javascript傳來參數時,想學習jQuery利用object傳遞即興組合參數設定的寫法,例如: $("#dvX").css({ position:"absolute", left:"2px"...
-
在 上回的文章 裡,測試過傳入Javascript Function當作參數,Thread.Sleep五秒後由Silverlight端呼叫。不過,眼尖的人應該有發現,在Thread.Sleep的五秒期間,網頁被卡死無法操作,而第二、三次傳入非Function呼叫的錯誤警告,也被排在五秒後才執行,換言之,整個程序是以同步方式執行。 咦,Siverlight不是支援多執行緒? 這可是跟Javascript嗆聲"閃開,讓專業的來"的絕佳時機呀! 要在Silverlight中加入多執行緒能力一點都不難...
-
在jQuery中,我們常會傳入匿名函數當作參數,供後續某些事件發生時呼叫。例如: $("#btnOK").click(function() { alert("OK"); }); 那麼,我們由Javascript端呼叫Silverlight的Method時,是否也能傳入匿名函數,請Silverlight在稍後呼叫? 做法很簡單,用ScriptObject承接傳入的匿名Function,接著呼叫 ScriptObject.InvokeSelf 就可以囉! 如果想多一點...
-
先前文章 文末提過一篇 Silverlight interoperability ,裡面有一句話 We have basic support for method overloading, by finding the overload which matches the number of arguments and by doing some basic parameter validation. 引起我的興趣,做了點研究,大致心得如下: 透過參數數目不同,Javascript呼叫時可精準地判別切換Overloading...
-
【先修課程】 關於本文中提到由Javascript呼叫Silverlight端程式的技巧,可以參考MSDN上的說明與教學: 使用 JavaScript 讓 Silverlight 可編寫指令碼 傳遞 JavaScript 物件至 Managed 程式碼 逐步解說:由 JavaScript 呼叫 Managed 程式碼 【本文開始】 寫了個Silverlight 3的Mehod供Javascript呼叫,其中一個參數想設定成string[],依據 文件 的說明" JavaScript 陣列會轉換成...
-
最近寫程式處理物件轉JSON時,才發現日期型別在轉換上有特別之處,在此做個整理: JSON中時間型別會轉成UTC標準時間。 題外話: 大家知道UTC是什麼的縮寫嗎? 是 Coordinated Universal Time 。 靠!! 取第一個字母縮寫明明該是CUT,為什麼會變成UTC? 原來這裡有段歷史,當初在定義名稱時,為了該用英語Coordinated Universal Time[CUT],還是法語Temps Universel Coordonné[TUC]吵翻天。最後一不做二不休,索性誰都不用...
-
不只是我,連Microsoft也深深愛上jQuery了! 兩年前,我與jQuery 一見鍾情 ,當下決定甩掉豪門千金ASP.NET AJAX Client Library,跟著jQuery私奔為愛走天涯... 真是個為難的決定呀!(嗯呀! 哪個男人不想減少奮鬥三十年) ASP.NET AJAX Client Library是所有ASP.NET AJAX Control的基礎,而網頁互動不可或缺的元素如DatePicker、 AutoComplete 、 Accordion … 等,在ASP.NET...