2012-11-23 11 views
5

Mam zaimplementowaną funkcję w widoku webowym. Umieszczam funkcję javascript w nagłówku HTML, a następnie ładuję ją przez web.loadUrl, ale widok internetowy nie uwzględnia tej funkcji. Czy można go załadować w ten sposób? czy jestem na niewłaściwym torze?Czy możemy załadować podstawowe funkcje javascript w widoku webowym?

"<td><a href='' onclick=\"displaying('image url')\" id=/image"+my_image[i] +"/"+" 

class='popup-open'><img 

src='"+my_image[i]+"'"+ 


       "width='80' height='65'></a></td></tr><tr>"; 

the hmtl content 

    String webData = "<!DOCTYPE html>" + 

       "<head> "+ 

       "<script>"+"function displaying(url) 

{document.getElementById('image').innerHTML =\"<img src=\"url\" width=\"100\" height=\"105\">\";}"+"</script>" 
       + 
       " </head><body>"+ html_content +"</tr></table></body></html>"; 

Odpowiedz

0

Być może jest to JavaScript lub niektóre gówno składniowe. Przede wszystkim spróbuj dowiedzieć się, jaki jest komunikat o błędzie z silnika WebKit.

Aby wyświetlać komunikaty javascript w przeglądarce internetowej, należy włączyć funkcję onConsoleMessage w implementacji.

myWebView.setWebChromeClient(new WebChromeClient() { 
      public boolean onConsoleMessage(ConsoleMessage cm) { 
       Log.d(cm.message() + " -- From line " 
         + cm.lineNumber() + " of " 
         + cm.sourceId()); 
       return true; 
      } 
     }); 

Upewnij się, że włączone te

WebSettings webSettings = webView.getSettings(); 
webSettings.setJavaScriptEnabled(true); 
+0

ale jest to możliwe, aby załadować javascripit wewnątrz WebView? – Dimitri

+0

Nie jestem pewien co masz na myśli? Masz kilka opcji: 1. załaduj javascript jako część strony internetowej (patrz metoda jQuery.getScript) 2. załaduj skrypt ze znacznikiem skryptu html Ale jeśli chcesz wystawić swój kod android java na stronę html webview, to wystarczy utworzyć klasę języka Java za pomocą metod, udostępnić ją dla zawartości webview webView.addJavascriptInterface (new WebAppInterface (this), "SOME_NAME"); A następnie wywołaj go w swoim kodzie po stronie klienta: , jeśli (SOME_NAME) {CHATECZNA.METODA1()} –

Powiązane problemy