导读部分
【HttpHelper万能框架】教程目录贴 http://www.sufeinet.com/thread-9989-1-1.html
【HttpHelper万能框架】源码购买帖 http://www.sufeinet.com/thread-9926-1-1.html
教程部分
执行JS一直是网络抓取的难题,或者是说可以难倒一部分用户的难题,今天我在万能框架中提供一个简单的执行JS方法
可以直接调用一段JS代码中的方法,或者是直接执行一段JS代码。
我实现的是Js的Eval方法,这个方法我相信懂JS的人都知道一点,他是用来动态执行JS代码的,大家想一下如果我在C#中实现这个方法,是不是就会很方便的来使用C#执行JS了。
我只想说必须的。
下面看方法签名
[C#] 纯文本查看 复制代码 /// <summary>
/// 直接调用JS方法并获取返回的值
/// </summary>
/// <param name="strJs">要执行的JS代码</param>
/// <param name="main">要调用的方法名</param>
/// <returns>执行结果</returns>
public static string JavaScriptEval(string strJs, string main)
调用方法,下面我 先给出一个简单的JS文件
[C#] 纯文本查看 复制代码
function main1() {
return 1 + 1;
}
function main2(n) {
return 1 + n;
}
下面是调用方法和用例大家请看代码
[C#] 纯文本查看 复制代码 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using CsharpHttpHelper;
namespace CsharpHttpHelper_Demo
{
public partial class HttpJs_Demo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string strjs = string.Empty;
using (StreamReader sr = new StreamReader(Server.MapPath("test.js")))
{
strjs = sr.ReadToEnd();
}
//调用不带参数的方法
string main1 = HttpHelper.JavaScriptEval(strjs, "main1()");
//调用带参数的方法
string main2 = HttpHelper.JavaScriptEval(strjs, "main2(25)");
//直接执行JS代码
string jiafa = HttpHelper.JavaScriptEval(string.Empty, "25+1+4");
//直接执行JS代码
string time = HttpHelper.JavaScriptEval(string.Empty, " new Date().toString()");
}
}
}
效果如下
好了,我相信有了这个方法能帮助大家解决很多问题。
更强大的功能我会一直研究,等有了成果我会第一时间加入万能框架,分享给大家使用。
这个功能将在25号左右的更新中出现。
小伙伴们有什么想法可以提提建议
|