如何在android中附加现有html内容的附加文本?

时间:2011-09-23 06:39:23

标签: android webview web

我正在开发一个应用程序。我在其中将文本附加到存储在.html文件中的现有文本,.html文件的位置在我的应用程序的“assets”文件夹中。我知道如何使用URL加载html但我的问题是附加文本。 以下是我的java代码

public class LoadWeb extends Activity {
    WebView wv;
    private Handler handler = null;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        wv=(WebView)findViewById(R.id.webView1);
        handler = new Handler();  
        wv.getSettings().setJavaScriptEnabled(true);
        wv.getSettings().setBuiltInZoomControls(true);
        wv.addJavascriptInterface(this, "contactSupport");
        wv.getSettings().setSupportZoom(true);
        wv.setWebViewClient(new Callback());
       // String title=wv.getTitle();
    // Log.e("nitin", "msg"+title);


        setTheme(Color.CYAN);
       // wv.setInitialScale(100);




        wv.loadUrl("file:///android_asset/style.html");


        }
    void loadTime() {
        String TESTSTRING = "'<div style='color:blue; border:1px solid red;'>YO!</div>'"; 
        // TODO Auto-generated method stub
        Log.e("mitiiiiiii", ""+TESTSTRING);
        wv.loadUrl("javascript:appendText("+TESTSTRING+")"); 

    }


    private class Callback extends WebViewClient {
        public boolean shouldOverrideUrlLoading(WebView view, String url) {


            return(true);

        }

        @Override
        public void onPageFinished(WebView view, String url) {
            loadTime();
            super.onPageFinished(view, url);
        }

    }
    public String deleteContact(final String contactId){  
        Toast.makeText(getBaseContext(),contactId ,Toast.LENGTH_LONG).show();
         handler.post(new Runnable() {  
              public void run() {  
                  Toast.makeText(getBaseContext(),contactId ,Toast.LENGTH_LONG).show();
              }  
            }); 

        Log.i("nitin"      ,""+contactId);
        return "http://google.com";
    }

}

以下是我的javascript代码

<html>
<head>
<script type="text/javascript">
var extraStr;
function appendText(extraStr) {

     document.getElementById('question')[0].innerHTML = document.getElementById('question')[0].innerHTML + extraStr;
     contactSupport.deleteContact();
 }  

function getUsed()
{
    var total = "";
    $(".boxWord.boxWordUsed").each(function (i){ total = total + this.getAttribute('index_no') + ":"; });
    return total;
}


</script>
<link href="style.css" media="all" rel="stylesheet" type="text/css" /> 
</head>
<body>
<div id="question" class='question' >
</div>

任何人都可以告诉我它为什么不起作用

提前致谢。

1 个答案:

答案 0 :(得分:7)

附加到HTML(连接)作为字符串连接不是一个好的解决方案,但您可以尝试这种方法,这将确保html文档的神圣性不被破坏。由于您随身携带HTML文档,因此表示您可以控制该文档,因此您应该能够执行此操作,我将在下面提及。

1)在HTML中创建一个函数

 function appendText(extraStr) {
     document.getElementsByTagName('body')[0].innerHTML =     document.getElementsByTagName('body')[0].innerHTML + extraStr;
 }  

2)在WebView上加载调用此函数

 myWebView.loadUrl("javascript:appendText('extra text or html here')"); 

3)不要忘记添加此

 myWebView.getSettings().setJavaScriptEnabled(true);