2015-09-29 26 views
1

我有了與DOM的訪問代碼的JavaScript文件調用javascript文件有訪問DOM

var a=document.getElementById("abc").value 

我的html文件,它包含了所有DOM信息

<html>...<input id="abc" ...></html> 

反正是有得到C#調用JavaScript文件,並返回值a,返回到C#程序?

實際上,JavaScript可能更加複雜,我需要將這些「感興趣的值」傳回給C#,但我們只需考慮這裏提到的簡單示例。

我認爲可能的方向是使用https://jint.codeplex.com/或Web瀏覽器控件。這裏面臨的挑戰是它不僅涉及JavaScript,還涉及HTML文件。

我想知道的是:

  1. 有沒有辦法來引導從JavaScript變量值回C#?

  2. 如何讓JavaScript從HTML文件中評估DOM元素?

+0

你可以使用jQuery? – Adil

+0

爲什麼你沒有嘗試MVC 4? – Shrinath

回答

0

使用web瀏覽器和Jint:

using (WebBrowser browser = new WebBrowser()) 
      { 
       browser.ScriptErrorsSuppressed = true; 
       browser.DocumentText = @"<html><head/><body><input id=""abc"" value=""this is the value in input""></body></html>"; 
       // Wait for control to load page 
       while (browser.ReadyState != WebBrowserReadyState.Complete) 
        Application.DoEvents(); 
       dynamic d = (dynamic)browser.Document.DomDocument;//get de activex dom 
       var jengine = new Jint.Engine(); 
       jengine.SetValue("document", d); 
       try 
       { 
        string val=jengine.Execute(@"var a=document.getElementById('abc').value;").GetValue("a").ToString(); 
        Console.WriteLine(val); 
       } 
      catch (Jint.Runtime.JavaScriptException je) 
      { 
       Console.WriteLine(je); 
      } 
     }