2011-04-01 37 views
2

如何使用我的活動中的按鈕將HTML文檔中的函數加載到webView中?即:ImageButton(稱爲:bookBtn)位於活動的標題欄中。當它被按下/點擊時,我需要它在webView DOM中激發一個函數 - 它基本上將一個新的HTML文檔加載到實現滑入效果的DOM中。從活動中調用JavaScript函數?

我發現了很多關於如何從webView執行此操作的文檔,但沒有其他方法。谷歌說它can be done,但實際上沒有任何例子。我試圖給他們示範代碼here,但我無法得到它的工作。感謝您的任何意見。

下面是加載到web視圖功能瓦特/在HTML文檔,mWebView:

<script type="text/javascript"> 
    $(document).ready(function() { 
     function loadTOC(){$.mobile.changePage("docs/1-1.html", "slideup"); 
     }; 
    }); 
</script> 

...和W /在我的主要活動,我想這是每谷歌文檔,但沒有按「T工作:

ImageButton imageButton = (ImageButton) findViewById(R.id.bookBtn); 
    imageButton.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
     mHandler.post(new Runnable() { 
      public void run() { 
       mWebView.loadUrl("javascript:loadTOC"); 
      } 
     }); 
     } 
    }); 

回答

-1

日Thnx來自於谷歌論壇「波士頓的街道」的幫助下,我指出正確的方向 - See Here

我錯過了末/上的呼叫&密切括號我從我的頭移動的功能身體和現在的功能火災。 :)

+3

我相信這兩個修復程序都是@ typo.pl提出的建議 – 2011-04-01 16:02:39

2

我沒有看到這裏,所以我要補充一點,你應該確保你有

mWebView.setWebChromeClient(new WebChromeClient()); 
mWebView.getSettings().setJavaScriptEnabled(true);. 

在你的Android代碼

+0

Thnx的輸入,但我確實已經有這些設置。 – CelticParser 2011-04-01 15:34:52

8

有在代碼中至少存在兩個問題:

1)中的JavaScript網址不會調用loadTOC功能,它只是引用它。你想要的是:

mWebView.loadUrl("javascript:loadTOC()"); 

2)loadTOC功能不是全局可見據我所知,這樣的JavaScript URL將無法訪問它。

您還應該確保啓用了JavaScript,因爲編碼不符合要求。

+0

Thnk - 我錯過了圓括號,但那不是修復。 – CelticParser 2011-04-01 15:37:29