像4399 3366那些网页 如何使用webbrower只显示flash内容 我做了个例子有问题 求解决
namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); webBrowser1.Navigate("http://www.3366.com/game/105785.shtml"); } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { HtmlDocument doc = this.webBrowser1.Document; foreach (HtmlElement a in doc.All) if (a.GetAttribute("className").ToString().Trim() == "bt_gm_play j_playgame") { a.InvokeMember("click"); // webBrowser1.Refresh(); } System.IO.StreamReader sr = new System.IO.StreamReader(webBrowser1.DocumentStream, Encoding.GetEncoding("gb2312")); string html = sr.ReadToEnd(); int start = html.IndexOf("var SR = "); int end = html.IndexOf("</script>", start) + 9; string fut = html.Substring(start, end - start); HtmlDocument doc1 = this.webBrowser1.Document; HtmlElement he = doc1.GetElementById("game_detail_wrapper_id"); // HtmlElement he1 = he.GetElementsByTagName("div").GetElementsByName("flash_box"); StringBuilder sb = new StringBuilder(); // sb.Append(sc); //sb.Append("<script type=\"text/javascript\">SR.set(1);</script>"); // sb.Append("<script>"); sb.Append("<script type=\"text/javascript\">"); sb.Append("\r\n"); sb.Append(fut); sb.Append(he.OuterHtml); MessageBox.Show(sb.ToString()); webBrowser1.DocumentText = sb.ToString(); } } }
可以用正则匹配html找出flash,下载flash,然后在显示
找到flash的容器,把其他的元素给干掉。
思路如下:
1、网页URL
2、使用XMLHTTP获取到 相应的网页源代码,而不是使用webbrowser直接访问。
3、得到一个字符串,使用正则表达式,或者土一点,用INSTR之类的,找到FLASH的路径URL。
4、webBrowser1.Navigate(flashurl)
这才是王道....