Пользовательский WebView Android не может найти функции JavaScript, определенные в загруженном HTML - PullRequest
4 голосов
/ 24 сентября 2011

У меня есть Android WebView.Я передаю HTML к нему (в виде строки).Этот HTML содержит некоторый базовый JavaScript.

При загрузке HTML пытается вызвать функцию JavaScript (определено в <head></head>).Это отлично работает на рабочем столе моего браузера, поэтому я уверен, что сам 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 во время выполнения: «Uncaught ReferenceError: ShowContent не определен».

1 Ответ

5 голосов
/ 24 сентября 2011

У меня есть предположение. Техника //<!-- ... //-->, предназначенная для действительно старых браузеров, устарела. Попробуйте удалить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...