Здравствуйте!
Описание проблемы следующее. Имеется приложение, запускаемое из консоли. Появляется форма, на которой расположен WebBrowser. Все это открывается на весь экран. При этом даже после того, как событие DocumentComplete произошло, скрипт, используемый на странице .html не выполняется. Но MessageBox появляется, т.е. в обработчик события попадаем.
Код главного потока
| Код | [STAThread] static void Main(string[] args) { Application.EnableVisualStyles(); Application.Run(new WebForm()); }
|
Описание класса формы
| Код | public class WebForm : Form { public WebBrowser web;
public WebForm() { web = new WebBrowser(); web.ScriptErrorsSuppressed = true; web.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(web_DocumentCompleted); web.Bounds = SystemInformation.VirtualScreen; SetupFormView(); LoadPage(); }
private void SetupFormView() { this.Controls.Add(web); this.WindowState = FormWindowState.Maximized; this.ClientSize = new System.Drawing.Size(web.Width, web.Height); this.ForeColor = System.Drawing.Color.Black; this.FormBorderStyle = FormBorderStyle.None; }
private void LoadPage() { string curDir = Directory.GetCurrentDirectory(); web.Navigate(new Uri(String.Format("file:///{0}/1.html", curDir))); }
private void web_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { int i = 4; int j = 3; MessageBox.Show("hey"); MyInvokeScript("drawTable", i, j); }
private object MyInvokeScript(string name, params object[] args) { return web.Document.InvokeScript(name, args); } }
|
Страница для загрузки в WebBrowser
| Код | <html> <script type="text/javascript"> function drawTable(i, j){ alert("i="+i+" j="+j); } </script> <body> <ul> <li id="first-line">first line</li> <li id="second-line">second line</li> <li id="third-line"><a href="2.html">third line</a></li> </ul> </body> </html>
|
Прошу прощения за создание данной темы. вопрос решился, пересохранением файла .html. |