为自己写程序之JavsScript代码段测试器
生活随笔
收集整理的這篇文章主要介紹了
为自己写程序之JavsScript代码段测试器
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
JavaScript的測(cè)試,通常是在Firefox的firebug插件中測(cè)試的。不過有時(shí)只是測(cè)試幾行代碼都要寫一個(gè)html,再打開瀏覽器測(cè)試運(yùn)行結(jié)果,感覺并不是很方便。
????{
????????IronJS.Hosting.CSharp.Context?ctx?=?new?IronJS.Hosting.CSharp.Context();
????????public?MainWindow()
????????{
????????????InitializeComponent();
????????????SetPrint();
????????}
????????private?void?button1_Click(object?sender,?RoutedEventArgs?e)
????????{
????????????try
????????????{
????????????????textBox2.Clear();
????????????????ctx.Execute(textBox1.Text);
????????????}
????????????catch?(Exception?ex)
????????????{
????????????????string?err?=?ex.Message;
????????????????while?(ex.InnerException!=null)
????????????????{
????????????????????ex?=?ex.InnerException;
????????????????????err? =?"\r\n"? ?ex.Message;
????????????????}
????????????????textBox2.Text?=?err;
????????????}
????????}
????????void?SetPrint()
????????{
????????????//?Effectively?the?same?as?context.CreatePrintFunction()?:-)
????????????var?print?=?IronJS.Native.Utils.createHostFunction<Action<IronJS.BoxedValue>>(ctx.Environment,
????????????????delegate(IronJS.BoxedValue?str)
????????????????{
????????????????????textBox2.Text?=?str.ClrBoxed.ToString();
????????????????});
????????????ctx.SetGlobal("print",?print);
????????}
????}
更多專業(yè)前端知識(shí),請(qǐng)上 【猿2048】www.mk2048.com
今天花了點(diǎn)時(shí)間做了一個(gè)簡(jiǎn)易的JS片段測(cè)試器。其實(shí)這主要是看了IronJs開源項(xiàng)目以后,才有了這個(gè)想法。 得益于JS在.net平臺(tái)下的執(zhí)行引擎IronJS的幫助,
這個(gè)測(cè)試器的實(shí)現(xiàn)真是不費(fèi)吹灰之力。IronJS還是蠻強(qiáng)大的,據(jù)說能夠成功編譯JQuery。不過需要.net 4.0和DLR的支持,自己用無所謂了。
?
代碼如下:
?
View Code ??public?partial?class?MainWindow?:?Window????{
????????IronJS.Hosting.CSharp.Context?ctx?=?new?IronJS.Hosting.CSharp.Context();
????????public?MainWindow()
????????{
????????????InitializeComponent();
????????????SetPrint();
????????}
????????private?void?button1_Click(object?sender,?RoutedEventArgs?e)
????????{
????????????try
????????????{
????????????????textBox2.Clear();
????????????????ctx.Execute(textBox1.Text);
????????????}
????????????catch?(Exception?ex)
????????????{
????????????????string?err?=?ex.Message;
????????????????while?(ex.InnerException!=null)
????????????????{
????????????????????ex?=?ex.InnerException;
????????????????????err? =?"\r\n"? ?ex.Message;
????????????????}
????????????????textBox2.Text?=?err;
????????????}
????????}
????????void?SetPrint()
????????{
????????????//?Effectively?the?same?as?context.CreatePrintFunction()?:-)
????????????var?print?=?IronJS.Native.Utils.createHostFunction<Action<IronJS.BoxedValue>>(ctx.Environment,
????????????????delegate(IronJS.BoxedValue?str)
????????????????{
????????????????????textBox2.Text?=?str.ClrBoxed.ToString();
????????????????});
????????????ctx.SetGlobal("print",?print);
????????}
????}
?
程序截圖:
?
(vs2010工程)源代碼下載
?
以前寫了個(gè)鬧鐘程序,不知道大家是否喜歡,反正我用著還行,可能是自己的孩子看著順眼吧。今天閑著無事又寫了個(gè)這個(gè),我主要用來在看JS代碼時(shí),
不明白了,復(fù)制上運(yùn)行下,看看結(jié)果,知道js還能這么寫。希望大家能夠喜歡吧!
??
Todo:
1、利用sharpdevelop的AvolenEdit控件實(shí)現(xiàn)JS語法高亮和變色。(已完成)
?
語法著色版下載
2、再次利用IronJS的JS解析器做個(gè)代碼自動(dòng)完成
3、做成JS的IDE了.....
(2和3)要看工作情況和自己的興趣是否允許了。
更多專業(yè)前端知識(shí),請(qǐng)上 【猿2048】www.mk2048.com
總結(jié)
以上是生活随笔為你收集整理的为自己写程序之JavsScript代码段测试器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mat-form-field must
- 下一篇: js判断对象类型