【发布时间】:2011-01-18 08:54:03
【问题描述】:
我有一个网页加载,进行一些计算,然后将 JavaScript 重定向到另一个网页。它看起来像这样:
http://www.mysite.com/startpage.html
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
$(document).ready(function() {
window.location = "http://www.mynewurl.com";
});
</head>
<body>
Something
</body>
</html>
现在我有一个加载 WebBrowser 控件的 asp.net MVC 应用程序,我的目标是能够从我的 C# WebBrowser 控件中检索http://www.mynewurl.com。
我的 WebBrowser 代码如下所示:
WebBrowser webBrowser = new WebBrowser
{
ScrollBarsEnabled = false,
Size = new Size(Width, Height),
ScriptErrorsSuppressed = true
};
webBrowser.NewWindow += WebBrowserNewWindow;
webBrowser.Navigate("http://www.mysite.com/startpage.html");
//wait for it to load
while (webBrowser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
Uri myUrl = webBrowser.Url; //This is how I have been trying to get it.
所以当我加载我的 webBrowser 控件时,我将它发送到http://www.mysite.com/startpage.html。它执行 javascript 重定向到 http://www.mynewurl.com。我想以某种方式在我的 c# 代码中捕获该 url。
关于如何实现这一点的任何想法?
【问题讨论】:
-
我注意到我可以使用 Thread.Sleep(10000);在while循环加载之后,它实际上得到了我的值。我猜浏览器需要永远接受来自 javaScript 的响应。显然,这不是一个可以接受的等待时间。正在寻找另一种解决方案。
-
我已经决定不做这个了。我不知道如何关闭这篇文章。
标签: c# javascript asp.net asp.net-mvc webbrowser-control