2017-01-25
2017-01-20
[C#] 透過C# 執行javascript code 並且執行得到結果
之前有一個想法就是讓客戶去寫一點程式讓他去展現他要做的折價規則,像是滿千送百或是滿三千送五百之類的,如果要做畫面之後客戶想改規則都要花很多時間,不過這只是一個想法結果找一下網路上資料真的有做法而且程式不難。
Type scriptType = Type.GetTypeFromCLSID(Guid.Parse("0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC")); dynamic obj = Activator.CreateInstance(scriptType, false); obj.Language = "javascript"; var res = obj.Eval("x=2999; x=x-((Math.floor(x/1000))*100);"); Response.Write(res);
上面案例 我設定公式是 x=x-((Math.floor(x/1000))*100); 然後假設使用者消費是2999 滿千送百這樣經過公式算出來的結果是 2799 ,很方便吧。
這裡面我比較好奇的是 Type.GetTypeFromCLSID 到底是什麼? 上網看一下文件 "GetTypeFromCLSID 方法支援晚期繫結存取 unmanaged COM 物件從.NET Framework 應用程式時您知道 COM 物件的類別識別項 (CLSID)。 COM 類別的類別識別項被定義在登錄的 HKEY_CLASSES_ROOT\CLSID 索引鍵。 您可以擷取的值 IsCOMObject 屬性來判斷這個方法所傳回的型別是否為 COM 物件"
2017-01-05
[C#] Serialize.Linq 簡單使用介紹
2016-11-25
[IoT] Linkit7688 DUO 透過 firmata 來控制GPIO,LED
這篇主要是基於 https://iamblue.gitbooks.io/linkit-smart-nodejs/content/zh-TW/basic/firmata.html 還有官網的資料 https://labs.mediatek.com/site/zntw/developer_tools/mediatek_linkit_smart_7688/training_docs/linkit_smart_7688_duo/firmata_nodejs/index.gsp
所組成的,但是因為中間碰到許多雷,所以筆記一下讓後面碰地的人可以快一點,這邊先感謝 iamblue 大大的無私分享
1. 首先準備 LED 燈泡 負極插入 GND 正極插入 D13
2. 安裝好Arduino 軟體 並且將 https://gist.github.com/edgarsilva/e73c15a019396d6aaef2 這邊的code 部屬進入 Linkit 7688 duo MCU 裡面
[Trick][Andrid] 在Facebook or LINE 下面脫離In-App Browser 開啟內建的browser
2016-11-17
2016-11-15
[IoT] Linkit7688 上面安裝簡單的編輯器nano
因為都在上面寫Node.js ,都透過PUTTY 直接連線上去寫,因為在電腦上面寫好再裝上去也是可以但是也很麻煩,而且內建的vim我用不習慣,網路上看一下原來可以安裝nano 所以簡單紀錄一下每一次都忘記都要重新查詢一次
簡單指令:
2016-09-05
[C#] Regex筆記 - 搜尋特定文字並使用搜尋到的字做格式取代
筆記一下,用某個Regex 條件過濾出來然後搜尋出的值再進行取代
案例文字: {IMG:a.jpg}<br />sometext{sometext2}{IMG:b.jpg}
這裡面我想要把{IMG:a.jpg} 跟 {IMG:b.jpg} 找出來,並且取代成<img src='a.jpg' /> 和 <img src='b.jpg' />
Code :
var sampleText = "{IMG:a.jpg}<br />sometext{sometext2}{IMG:b.jpg}";var rgx = new Regex(@"{IMG:(?<FILENAME>.*?)}", RegexOptions.IgnoreCase);
var replacePattern = "<img src='$1' />";var resultText = rgx.Replace(sampleText, replacePattern);
Response.Write(resultText);
結果: <img src='a.jpg' /><br />sometext{sometext2}<img src='b.jpg' />
2016-08-31
[ASP.net] WebService 中使用AJAX 調用出現 "使用 JSON JavaScriptSerializer 序列化或還原序列化期間發生錯誤。字串的長度超過在 maxJsonLength 屬性上設定的值。"
因為一些需求,需要將圖片轉成Base64後透過ajax 往後送,我的ajax 是用web service 寫的,結果出現
{"Message":"使用 JSON JavaScriptSerializer 序列化或還原序列化期間發生錯誤。字串的長度超過在 maxJsonLength 屬性上設定的值。參數名稱: input","StackTrace":" 於 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
於 System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String input)\r\n 於 System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext context, JavaScriptSerializer serializer)
於 System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData, HttpContext context)
於 System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context, WebServiceMethodData methodData)","ExceptionType":"System.ArgumentException"}
於是我查一下資料看到這一篇: http://forums.asp.net/t/1697754.aspx?what+is+maxJsonLength+in+jsonSerialization+
參考文件 : https://msdn.microsoft.com/zh-tw/library/system.web.script.serialization.javascriptserializer.maxjsonlength(v=vs.110).aspx
原來預設是有上限的,所以要超越那上限必須在web.config 加入 :
<configuration>
...
<system.web.extensions>
<scripting>
<webServices >
<jsonSerialization maxJsonLength="10240000"></jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
...
</configuration>
這樣就可以超越限制,至於多少字符那就在換算調整
2016-08-26
[Javascript] Croppie 初始後再換圖片
[Javascript] 筆記一下用法,input file 選取檔案後預覽圖片
選取一個圖片檔案後,直接進行預覽,以前我都是傳到server 按下上傳後再做預覽,現在可以透過javascript 做到,這樣對使用者來說會更加的直覺看到選取圖片是否正確
function InputLoadImageToBindImageElement(inputEl, imgEl) { if (inputEl.files && inputEl.files[0]) {var reader = new FileReader();
reader.onload = function (e) { $(imgEl).attr('src', e.target.result);}
reader.readAsDataURL(inputEl.files[0]);
}
}
使用方式:
HTML:
<img src="" id="image1" />
<input type="file" name="name" id="iptImage1" value="" />
呼叫:
$("#iptImage1").change(function () {
InputLoadImageToBindImageElement(this, $('#image1'));
});
sample:
2016-08-25
[CSS] Summernote 把取消上傳圖片的放大縮小(Image Resize)