[英]C# - Read JavaScript file and access variable
我有一个JavaScript文件,其中定义了变量,并为其分配了值。 是否可以使用C#读取.js文件并轻松检索变量和值? 我知道变量名是什么,但是值将是json字符串。 我希望我不必求助于正则表达式。
编辑:我没有控制JavaScript文件的内容。 第三方将文件拖放到某个位置,我需要将其拾起,读取并解析。
编辑2:好的,忘了我提到json。 实际上,这与我的问题无关……目前看来,这还没有一个简单的解决方案。 因此,我逐行阅读.js文件,搜索变量名称并获取值。 以下代码供参考。
using (StreamReader r = new StreamReader("myFile.js"))
{
while(r.Peek() >= 0)
{
var line = r.ReadLine();
if(line.IndexOf("myVariableName") > -1)
{
var arr = line.split("=");
var variable = arr[0].Trim();
var value = arr[1].Trim();
}
}
}
我需要创建一个浏览器帮助器对象中的类似问题,以便从Web生成的报表中提取数据并将其存储在本地文件系统中。
我做了以下访问js值:
mshtml.IHTMLDocument document = (mshtml.IHTMLDocument)this.Explorer.IWebBrowser_Document;
object script = document.Script;
if (script != null)
{
// Make the call:
var jsvar = script.GetType().InvokeMember("eval", BindingFlags.InvokeMethod, null, script, new object[] { "HIS_VisitNumber" });
// Cast...
_strHISVisit = (string)jsvar;
// Release the script object, and possibly the document object.
Marshal.ReleaseComObject(script);
}
在这里this.Explorer是可通过Band对象(BHO)使用的资源管理器对象。
但是,当然,只有当您能够利用具有加载和执行js的所有功能的浏览器(IE)时,这种方法才可行。
如果您不能做这样的事情,我想您需要的是完整的C#js解析器,还是我不能正确理解您的问题?
在后一种情况下,您可以使用Javascript .NET
如果您是Web开发人员,并且想要将数据从JavaScript文件(客户端)发送到C#文件(服务器端),则可以使用jQuery Ajax。 您可以将变量传递给C#文件中的函数。 请记住,必须将[WebMethod]
属性添加到C#函数中,并且该函数必须是static
。
$.ajax({
type: "post",
url: "Default.aspx/YourMethodName",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify({ varOne: one , varTwo:two }),
success: function (v) {
alert("Success");
},
error: function (error) {
alert("Error");
},
complete: function () {
alert("Complete");
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.