2012-02-10 15 views
2

工作,我已經保存在我的strings.xml這個網站的內容聯JavaScript不是的WebView

<string name="html"> 
      <![CDATA[ 
      <html> 
       <head> 
        <style> 
         *{ 
          margin: 0 0 0 0; 
          padding: 0 0 0 0; 
         } 
         body{ 
          background: #000; 
          color: #FFF; 
         } 
         #content { 
          text-align: justify; 
         } 
        </style> 
        <script type="text/javascript"> 
        window.onload = function(){ 

          document.getElementById("content").innerHTML = "Changed"; 
         } 
        </script> 
        </head> 
       <body> 
        <div id="content"> 
         <p>Hello</p> 
        </div> 
       </body> 
      </html> 
      ]]></string> 

這應該改變id爲內容div來「改變」如果你試圖在瀏覽器中正常工作。問題是壽,它不會在WebView中工作,即使我們已經setJavascriptEnabled(真)

這裏是我的活動:

... 
WebView view = (WebView) findViewById(R.id.web_webView1); 
     WebSettings settings = view.getSettings(); 
     settings.setJavaScriptEnabled(true); 
     settings.setPluginsEnabled(true); 
     settings.setDomStorageEnabled(true); 

    view.loadData(getString(R.string.html), "text/html", "utf-8"); 
... 

我不知道爲什麼它不工作?任何線索? :)

+0

你是如何加載到web視圖的HTML? – 2012-02-10 23:49:44

+0

通過loadData()方法 – Richard 2012-02-12 10:21:27

+0

如果你把onload語句放在body標籤中是否有效?如 – 2012-02-12 16:46:24

回答

1

我看到你正在加載html使用view.loadData(),你知道你可以傳遞JavaScript到loadUrl(),它會直接執行?另外,您是否檢查過以確保字符串按照您想要的方式到達該方法? 你現在的做法是否在做任何事情?我會建議從一個簡單的字符串開始,看看它是否符合你的期望。 loadData()對於執行javascript有點奇怪。在其他瀏覽器中工作的某些東西只能通過loadData()與webview無法使用。

0

我曾與HTML是有內嵌JavaScript不是通過loadData裝有控制檯錯誤WebView工作類似的問題不停地說:

SyntaxError: Unexpected Identifier 

原來,問題是我的內聯JavaScript語法過於寬鬆,你必須嚴格與您的行尾標記,;

例如,這已破壞:

<html> 
    <script> 
     function foo() { 
      var x = 'sd' 
     } 
    </script> 
</html> 

凡爲工作的:

<html> 
    <script> 
     function foo() { 
      var x = 'sd'; 
     }; 
    </script> 
</html> 

通知添加2分號,兩者都需要以固定語法錯誤。