2011-08-09 5 views
4

다음 코드는 다음과 같습니다. onPageFinished (WebView보기, String url) 내 사이트를 외부 사이트에 삽입하는 데 사용하고 있습니다. 불행하게도 Webview에서는 페이지를 먼저 렌더링 한 다음 CSS를 적용합니다. 페이지를 렌더링하기 전에 기다렸다가 자바 스크립트를 표시하기 전에 적용 할 수 있습니까?CSS를 WebView에 영구 보관하는 방법

WebClient HTTP를 사용하면 더 쉬운 방법이 있습니까? CSS를 로컬로 가져 와서 웹 사이트로 리디렉션 하시겠습니까?

미리 제안 해 주셔서 감사합니다.

com.webkitdemo; 

import android.app.Activity; 
import android.os.Bundle; 
import android.os.SystemClock; 
import android.view.View; 
import android.view.Window; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class WebKitDemo extends Activity 
{ 
final Activity activity = this; 

@Override 
public void onCreate(Bundle savedInstanceState) 
{ 
super.onCreate(savedInstanceState); 
this.getWindow().requestFeature(Window.FEATURE_PROGRESS); 
setContentView(R.layout.main); 

//addition final webview 

final WebView webView = (WebView)findViewById(R.id.web_engine); 
/* JavaScript must be enabled if you want it to work, obviously */ 
webView.getSettings().setJavaScriptEnabled(true); 




webView.setWebChromeClient(new WebChromeClient() { 
public void onProgressChanged(WebView view, int progress) 
{ 
activity.setTitle(" Loading..."); 
activity.setProgress(progress * 100); 

if(progress == 100) 
activity.setTitle(R.string.app_name); 
} 
}); 

webView.setWebViewClient(new WebViewClient() { 
@Override 
public void onReceivedError(WebView view, int errorCode, String description, String      failingUrl) 
{ 
// Handle the error 
} 

//additions 

@Override 
public void onPageFinished(WebView view, String url) 
{ 
    webView.loadUrl("javascript:(function() { " + 
     "document.getElementsByTagName('body')[0].style.color = 'green'; " + 
     "})()"); 
} 
// 

@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url) 
{ 
webView.loadUrl(url); 
return true; 
} 



}); 
webView.loadUrl("http://code.google.com"); 
}} 

답변

-1

스타일을 변경하기 전에 코드를 추가하십시오. 그렇게하면 페이지 로딩이 완료 될 때만 실행됩니다.

var oldonload = window.onload; 
if (typeof window.onload != 'function') 
    { 
    window.onload = yourfunctionhere(); 
    } 
else 
    { 
    window.onload = function() 
    { 
    yourfunctionhere(); 
    oldonload(); 
    } 
} 
관련 문제