Android自定义WebView无法找到加载的HTML中定义的javascript函数

Android自定义WebView无法找到加载的HTML中定义的javascript函数,java,javascript,android,html,android-webview,Java,Javascript,Android,Html,Android Webview,我有一个安卓网络视图。我将HTML传递给它(作为字符串)。这个HTML包含一些基本的javascript 加载时,HTML尝试调用javascript函数(在中定义)。这在我的浏览器桌面上运行良好,因此我确信HTML/Javascript本身是正常的,但是当我将相同的HTML加载到我的WebView中时,它就无法工作了 下面是我如何实例化WebView的: WebView view = new WebView(context); WebSettings settings = view.getSe

我有一个安卓网络视图。我将HTML传递给它(作为字符串)。这个HTML包含一些基本的javascript

加载时,HTML尝试调用javascript函数(在
中定义)。这在我的浏览器桌面上运行良好,因此我确信HTML/Javascript本身是正常的,但是当我将相同的HTML加载到我的WebView中时,它就无法工作了

下面是我如何实例化WebView的:

WebView view = new WebView(context);
WebSettings settings = view.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(false);
view.setWebChromeClient(new CustomWebChromeClient());
view.setWebViewClient(new CustomWebViewClient());
view.loadData(ARBITRARY_HTML, "text/html", "utf-8");
加载的HTML是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>My head hurts from head-desking</title>
    <style type="text/css">
    #content
    {
        display: none;
    }
    </style>
    <script type="text/javascript">
    //<!--
    function ShowContent()
    {
        document.getElementById('content').style.display = 'block';
    }
    //-->
    </script>
</head>
<body onload="ShowContent()">
    <div id="content">
    This content should be shown, but isn't!
    </div>
    <div id="other">
    All I see is this content... and that makes me question my self worth.
    </div>
</body>
</html>

我坐在办公桌上头疼
#内容
{
显示:无;
}
//
应该显示此内容,但不显示!
我所看到的只是这个内容。。。这让我怀疑我的自我价值。

这会产生(仅在Android上)运行时javascript错误:“未捕获引用错误:未定义ShowContent”。

我有一个假设。
/
技术是一种为真正的旧浏览器编造的黑客技术,它已经过时了。试着把它去掉。

这真让我头疼。这是一个“我的眼睛在流血,因为我已经在这段代码上花了很多时间试图找到错误”的问题。我肯定我只是没有看到一些简单的事情。有人建议我使用jQuery,但我尝试运行的javascript非常简单,为了解决这个问题而额外增加100kb似乎有点臃肿。。。更新我做了一个测试,创建了两个按钮
。通过按下第二个按钮直接执行javascript效果很好(wtf?),但我无法调用该函数。我真的不明白这里有什么问题。我有一个这样的输入字段,在这种情况下,它不会打开我的文件选择器对话框,但当我从上面的代码中删除style=“display:none;”时,它工作得很好。如何解决这个问题。我想隐藏输入字段(浏览按钮),请帮助你,你太棒了。就这样。哇!对我来说更有趣的是,我发誓我只是在一场史诗般的斗争之后才把它放进去的,那就是努力让每件事都变得更“合规”,努力把它付诸行动。就这样!找到解决方案。如果我有这个名声,我会投票的;)谢谢你的接受。你得到了我的一张赞成票,只是因为你的提问很好。你的第二次评论更新给了我必要的提示。自从我使用internet explorer以来,我知道一些非常肮脏的黑客行为。提示:在使用android时,请将它们全部忘记;-)哇,在我的例子中,删除@Knickedi我有一个这样的输入字段。在这种情况下,它不会打开我的文件选择器对话框,但是当我从上面的代码中删除style=“display:none;”时,它工作得很好。如何解决这个问题。我想隐藏输入字段(浏览按钮)请help@QadirHussain你的问题在某种程度上与这个答案有关吗?我建议你自己提出一个问题。在这里讨论这件事似乎不合适。