使用WebBrowser的C#WebApplication

时间:2016-02-04 11:23:43

标签: c# .net asp.net-mvc iis web-applications

我正在尝试在ASP.Net Web应用程序中运行Javascript函数,我正在使用WebBrowser来执行此操作:

JavaScriptSerializer js = new JavaScriptSerializer();
Dictionary<string, object> mainDic = (Dictionary<string, object>)js.DeserializeObject(fulljsFile);

String base64Content = (String)mainDic["html"];
String html = Base64.Base64Decode(base64Content);

Thread thread = new Thread(delegate()
{
    WebBrowser browser = new WebBrowser();

    browser.Navigate("about:blank");
    if (browser.Document != null)
    {
        browser.Document.Write(string.Empty);
    }

    browser.Document.Write(html);

    string name = (string)browser.Document.InvokeScript("extract");
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
thread.Join();

这是html var:

<html><script>
function extract()
{
    return 'Steve';
};
    </script>
</html>

问题是name为空,而不是Steve

当我在我的IIS服务器上本地运行时,它正在运行,但是当我将它上传到我的服务器时,它无法将某些内容返回到name var。

1 个答案:

答案 0 :(得分:1)

我想知道在您尝试运行脚本时文档是否已加载到浏览器中。 那么,您可以尝试处理导航完成事件并从那里运行脚本。