我将此html内容存储在我的strings.xml中
<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更改为"Changed“,如果您在浏览器中尝试它,它会工作得很好。问题是,即使我们有setJavascriptEnabled(true),它也不能在WebView中工作
以下是我的活动:
...
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");
...我不知道为什么它不能工作?有什么线索吗?:)
发布于 2017-11-02 05:56:42
我遇到了类似的问题,在通过loadData加载的WebView中,内联javascript无法工作,控制台错误一直在说:
SyntaxError: Unexpected Identifier原来问题出在我的内联javascript语法太松散了,你必须严格使用你的行尾标记;。
例如,这是损坏的:
<html>
    <script>
        function foo() {
            var x = 'sd'
        }
    </script>
</html>当它起作用时:
<html>
    <script>
        function foo() {
            var x = 'sd';
        };
    </script>
</html>请注意添加了两个分号,这两个分号都是修复语法错误所必需的。
发布于 2012-02-12 10:19:38
我看到您正在使用view.loadData()加载html,您知道您可以将javascript传递给loadUrl(),它将直接执行吗?另外,你有没有检查以确保字符串完全按照你想要的那样到达了那个方法?它在你目前的方法中做了什么吗?我建议从一个更简单的字符串开始,看看它是否如您所期望的那样。loadData()在执行javascript时有点奇怪。在其他浏览器中工作的某些东西不能通过loadData()与webview一起工作。
https://stackoverflow.com/questions/9232625
复制相似问题