簡體   English   中英

從C#應用程序調用Javascript文件

[英]Invoke Javascript file from C# application

我有一個.js文件,該文件執行構建數組字符串的相當簡單的任務。 無需贅述,我發現Javascript是執行此特定任務的最佳語言。

我現在想要的是在C#應用程序中訪問該數組。 Javascript無法訪問文件系統,因此在用C#讀取文件之前將數組寫入文件是不可能的。

是否有捷徑可尋? 這兩種語言完全可以互動嗎?

檢查一下名為Jurassic的JavaScript解析器:

例如,取自他們的文檔:

var engine = new Jurassic.ScriptEngine();
Console.WriteLine(engine.Evaluate("5 * 10 + 2"));

假設在Windows上使用本地JavaScript。

您絕對可以像使用任何其他腳本語言一樣,使用本地JavaScript訪問文件。

這是創建文件表單的示例使用文件 MSDN文章:

function CreateFile()
{
   var fso = new ActiveXObject("Scripting.FileSystemObject");
   var tf = fso.CreateTextFile("c:\\testfile.txt", true);
   tf.WriteLine("Testing 1, 2, 3.") ;
   tf.Close();
}

如果需要,您還可以使用.Net JSC編譯器編譯一些JavaScript,以獲取可執行文件(甚至可能是.Net程序集)。

為什么不? 假設這是一個Web窗體C#應用程序,則可以使用System.Web.UI一部分中的ScriptManager類從C#代碼訪問Javascript函數。

 protected void Page_Load(object sender, EventArgs e)
 {
        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "GetData", "Javascript:getArrayValues();", true);
 }

在HTML標記中,定義一個標簽,例如

<asp:HiddenField ID ="hfArrayValues" runat ="server" Value ="" />

在getArrayValues()JS函數中,您可以將數組值存儲到一個隱藏變量中,然后從后面的代碼中訪問該值

 function getArrayValues() {
        var arr = ["value 1", "value 2", "value 3"];
        var hfvalue = document.getElementById('hfArrayValues').value = arr;
 }

以及您可以在其中訪問數組值的C#方法

 protected void Button1_Click(object sender, EventArgs e)
 {
        Response.Write(hfArrayValues.Value);
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM