WP7 Webbrowser InvokeScript ошибки - PullRequest
       9

WP7 Webbrowser InvokeScript ошибки

0 голосов
/ 13 февраля 2012

Скрипт вызова элемента управления WebBrowser всегда дает мне ошибки.Этот html-скрипт проверен на http://validator.w3.org. Я написал код такой, что при нажатии кнопки «button1» webBrowser1 вызывает функцию «setCredentials».Я не уверен, почему это выдает ошибку типа

"Произошла неизвестная ошибка. Ошибка: 80020006."

    public TestInvokeScript()
    {
        InitializeComponent();
        LoadHtml();
        webBrowser1.IsScriptEnabled = true;
        webBrowser1.NavigateToString(_html);

        button1.Content = "Set Credentials";
    }

    private void LoadHtml()
    {

        _html = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"" +
                "    \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">" +
                "<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\" xml:lang=\"en\">" +
                "<head>" + "<meta name=\"generator\" content=\"HTML Tidy for Linux (vers 6 November 2007), see www.w3.org\" />" +
                "<script type=\"text/javascript\">" +
                "//<![CDATA[" +
                "            function setCredentials()" +
                "                        {" +
                "                                document.getElementById(\"email\").value = \"test@gmail.com\";" +
                "                        }" +
                "//]]>" +
                "</script>" +
                "<title></title>" +
                "</head>" +
                "<body>" +
                "<form action=\"https://cloudmagic.com/k/login/send\" method=\"post\">" +
                "<input id=\"email\" type=\"text\" value=\"\" /> " +
                "<input id=\"password\" type=\"password\" />" +
                " <button type=\"submit\" id=\"login_send\">Login</button>" +
                " </form>" +
                "</body>" +
                "</html>";
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
         var obj = webBrowser1.InvokeScript("setCredentials");             
    }

В чем я ошибаюсьdoing.?

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

Я передавал HTML в виде строки. Не зная, я использовал двойную косую черту (//) и это прокомментировало остальную часть строки, так как нет символов newLine. Мне понадобился почти день, чтобы понять это. Удалите двойную косую черту и тег CData.

1 голос
/ 13 февраля 2012

Пара возможностей:
1. Убедитесь, что вы вызываете его после срабатывания PageLoaded или NavigateComplete.
2. Попробуйте это:

Dispatcher.BeginInvoke(() =>
                  {

                      var result = webBrowser.InvokeScript("javascrpitMethod", param1, param2);
                  });
...