2012-02-13 3 views
0

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

"An unknown error has occurred. Error: 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 = \"[email protected]\";" + 
       "      }" + 
       "//]]>" + 
       "</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");    
    } 

Что такое ошибка, которую я делаю.?

ответ

1

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

+0

Не возражаете ли вы дать причину для downvote. – Prakash

1

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

Dispatcher.BeginInvoke(() => 
        { 

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

Я не считаю, что вызов после события PageLoaded или NavigateComplete поможет. Поскольку страница загружается и только после этого я нажимаю кнопку, чтобы выполнить скрипт. – Prakash

Смежные вопросы