2012-11-23 8 views
5

Tôi đã triển khai một chức năng trong chế độ xem web. Tôi đặt hàm javascript vào đầu html sau đó tải nó qua web.loadUrl nhưng webview không xem xét chức năng. Có thể tải nó theo cách này không? hay tôi đang đi sai đường?Chúng tôi có thể tải chức năng javascript cơ bản trong một chế độ xem web không?

"<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>"; 

Trả lời

0

Có thể là JavaScript của bạn hoặc một số cú pháp. Trước hết, hãy cố gắng tìm ra thông báo lỗi từ công cụ WebKit.

Để hiển thị các tin nhắn javascript của webview, hãy đặt onConsoleMessage khi triển khai.

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

Hãy chắc chắn rằng bạn đã kích hoạt sau đây

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

nhưng là nó có thể tải javascripit bên WebView? – Dimitri

+0

Tôi không chắc ý bạn là gì? Bạn có vài lựa chọn: 1. tải javascript như một phần của trang web (xem phương pháp jQuery.getScript) 2. tải tập lệnh bằng thẻ html tag Nhưng nếu bạn muốn hiển thị mã java android của bạn vào trang webviewview, thì bạn chỉ cần tạo một lớp java với các phương thức, làm cho nó có sẵn cho nội dung của webview webView.addJavascriptInterface (mới WebAppInterface (this), "SOME_NAME"); Và sau đó gọi nó trong mã phía máy khách của bạn nếu (SOME_NAME) {SOME_NAME.METHOD1()} –