Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > WebBrowser.DocumentComplete не работает javascript


Автор: Zerofill 19.7.2013, 10:00
Здравствуйте!

Описание проблемы следующее. Имеется приложение, запускаемое из консоли. Появляется форма, на которой расположен 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. 

Автор: dzaraev 19.7.2013, 21:41
Цитата(Zerofill @  19.7.2013,  10:00 Найти цитируемый пост)
Прошу прощения за создание данной темы. вопрос решился, пересохранением файла .html. 

Тогда неплохо бы его отметить, как решённый smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)