2014-03-19 24 views
0

我在sdcard上有一個本地html文件,我將其加載到webview中。 html有兩個按鈕,第一個按鈕在web視圖上顯示一些文本,第二個按鈕清除webview上的文本。 當webview第一次運行時,這工作正常。但是,當我使用webview離開活動,然後重新創建相同的活動時,第一個按鈕不再起作用。使用webview重新創建活動後JavaScript不運行

我有使用這些設置的新的WebView

webView.loadUrl("file:///_path_to_file_on_sdcard_"); 
webview.getSettings().setJavaScriptEnabled(true); 
webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
setWebChromeClient(new WebChromeClient()); 

的HTML:

<p>JSONP Example</p> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 

<script type="text/javascript"> 
$(document).ready(function(){ 
      $("#button1").click(function(){ 
     try { 
     $.ajax({ 
      type: "get", 
      async: false, 
      url: "http://myserver.com/json.php?iamback=?", 
      dataType: "jsonp", 
      jsonp: "callback", 
      jsonpCallback:"flightHandler", 
      success: function(data){ 
       $("#content").html(''); 
       $("#content").append('Your data is' + data+'.<br />');     $("#content").append('Your name is' + data.name+'.<br />');     $("#content").append('You live in' + data.addr+'.');   
       }, 
      error: function(){ 
       alert('fail'); 
       } 
      }); 
        } 
     catch(err) 
     { 
      alert(err); 
     } 
     }); 

     $("#button2").click(function(){ 
      a$("#content").html(''); 
     }); 
     }); 
<p><button id="button1">JSONP Example</button> <br /> <br /> 
    <button id="button2">Clear</button> </p> 
<div id="content">testing abc</div> 

的URL http://myserver.com/json.php?iamback=?返回這個:

?({'name' : 'Tom','addr':'Taipei'}) 

我不知道我在做什麼錯在這裏? 任何人有任何想法或關鍵字我可以用來找到一些答案? 謝謝!

+0

只是萬一如果webview緩存內容添加此 - webView.getSettings()。setAppCacheEnabled(false);並確保設置null webview ondestory並重新加載/ ini創建。 – Neha

+0

謝謝Neha。我已經在init上完成了webView.getSettings()。setAppCacheEnabled(false),並且還在onDestroy中完成了webView.clearCache(true)。 p.s.-在我的應用程序中,我創建了許多新的活動(一次一個),其中包含一個webview,而javscript適用於第一個活動,但對其他活動無效。 – dosa

回答

0

在WebView上設置設置後,請最後嘗試撥打loadUrl

+0

感謝ksasq,其實我最後調用loadUrl --- 我已經擴展了WebView,並在WebView的構造函數中調用了setJavaScriptEnabled。 – dosa

+0

您是否分享了有關「不工作」的含義的更多細節?除了加載此文件以外,您的應用程序是否以任何其他方式與WebView交互? – ksasq

+0

我發現我的錯誤,我發現我一直在呼籲 webview.pauseTimers();在我的activity的onPause()中,但是webview.resumeTimers();不會在我的應用程序中被調用。所以一旦我得到解決這個問題,JavaScript的作品完美:) – dosa

相關問題