我正在尝试在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。
答案 0 :(得分:1)
我想知道在您尝试运行脚本时文档是否已加载到浏览器中。 那么,您可以尝试处理导航完成事件并从那里运行脚本。