C#如何调用JS文件中的函数

举个例子我有一段JS代码functiona(arg1){returnarg1*100;}然后我想在C#中调用这个a函数并获取返回值该怎么做?注意这个JS文件是一个字符串,... 举个例子我有一段JS代码
function a(arg1)
{
return arg1*100;
}
然后我想在C#中调用这个a函数并获取返回值该怎么做?
注意这个JS文件是一个字符串,不是网页,所以很纠结,求大神解答
展开
 我来答
xiangjuan314
2016-01-18 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2909万
展开全部
通过webBrowser实现C#和javascript互调
实现步骤:
一、新建一个窗体,加入webBrowser控件
控件名:webBrowser1

二、在窗体后台代码加入如下定义
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class Form1 : Form
{
...
}

三、加载网页
webBrowser1.Navigate(Application.StartupPath + "/UpDateReport.htm");
webBrowser1.ObjectForScripting = this; //这句必须,不然js不能调用C#

四、调用脚本方法
/// <summary>
/// 脚本方法
/// </summary>
/// <param name="tag">JS函数名|参数1|参数2</param>
/// <returns></returns>
private object EXEC_JS(System.Windows.Forms.WebBrowser webBrowser, string tag)
{
string[] args = tag.Split('|');
if (args.Length == 1)
{
return webBrowser.Document.InvokeScript(args[0], null);
}
else
{
object[] objects = new object[args.Length - 1];
Array.Copy(args, 1, objects, 0, objects.Length);
return webBrowser.Document.InvokeScript(args[0], objects);
}
}

五、C#调用脚本方法例子,可以有返回值
//JS方法
<script language="javascript">
function js_fun(args)
{
alert("我是通过js脚本弹出的。你输入的内容是:"+args);
return "JAVASCRIPT";
}
</script>
//C#代码
object returnvalue = EXEC_JS(webBrowser1, "js_fun|参数字符串");
MessageBox.Show("js方法返回值是:" + returnvalue.ToString());

六、JS调用C#方法的例子
//C#方法
public string Test(string args)
{
return "你输入的是:"+args;
}
//JS代码
<script language="javascript">
window.onload = function()
{
var CS_returnvalue= window.external.Test("aaa");
alert(CS_returnvalue);
}
</script>
恫作证瓜
2015-04-19
知道答主
回答量:1
采纳率:0%
帮助的人:1260
展开全部
的非官方的是公司的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linqing171
推荐于2018-03-07 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:193
采纳率:0%
帮助的人:122万
展开全部
winform的么? 引用webbrowser, 然后调用evaluate
aspx么? 是在客户端运行么?
更多追问追答
追问
是控制台程序,这个JS是加密用的,不考虑服务器问题
追答
控制台程序也可以引用webbrowser, 这个是一个简单的方法.  当然也可以直接调用jscript.dll, 但是external比较麻烦,document也是.
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
郑怀宇1230
2015-04-19 · TA获得超过246个赞
知道答主
回答量:82
采纳率:0%
帮助的人:59.1万
展开全部
风鸟我爱你ヽ(*´з`*)ノ
追问
-_-||
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
灬戰灬0
2015-04-19
知道答主
回答量:1
采纳率:0%
帮助的人:1260
展开全部
c#?能调用吗?易语言去吧
追问
我现在就是用易语言写了个dll然后拿C#调用。。。很麻烦啊,程序体积都1M多了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
无奈史蒂夫
2015-04-19
知道答主
回答量:2
采纳率:0%
帮助的人:2454
展开全部
疯鸟。。。。。你好
追问
-_-||-_-||-_-||-_-||-_-||-_-||-_-||
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式