javascript - 为什么 WebView.loadUrl ("javascript: someFunction()")不适用于本地 html 文件?

标签 javascript android html android-webview

我正在使用 android 的 WebView.loadUrl() 方法从 SD 卡加载 HTML 文件。 该 html 文件包含 JavaScript 函数,例如 someFunction()

由于某种原因我仍然不明白,调用 mWebView.loadUrl("javascript:someFunction()"); 不会“触发”HTML 文件中的函数。 (我在 html 加载完成后调用它...)

当我从远程服务器加载到Web View 相同的HTML文件,并从webView启动相同的JavaScript调用时 - 它确实有效! 所以我知道问题出在我从本地文件加载它的事实,而不是我的 html 文件中的错误。

我知道需要启用 JavaScript:

    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);

这没有帮助!

我还注意到 WebViewClient.onLoadResource() 回调也存在同样的问题。当文件位于本地而不是来自远程服务器(或者准确地说,从 HTTP Web 服务器的 uri 访问)时,我似乎对 javascript 存在一般问题。

有什么建议说明为什么会发生这种情况吗?我需要做什么才能让它发挥作用?

TIA

最佳答案

看来这是我的错误。即使 html 文件位于 SD 上,java 脚本函数也能正常工作。由于某些其他原因,我使用的特定功能根本无法按预期工作。

关于javascript - 为什么 WebView.loadUrl ("javascript: someFunction()")不适用于本地 html 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11581335/

相关文章:

javascript - 为复杂的 Firebase 查询提供 Angular 服务

Android 新收件箱应用样式 ListView ,左右滑动

html - 如何使用 wkhtmltopdf 处理尺寸/大小?

asp.net - 将 Windows 8 主题仪表板应用到我在 ASP.NET 中设计的网站

javascript - d3.js - 如何在弹出窗口中显示链接相关数据(例如源和目标)

c# - OnClientClick 正在停止回发

android - 如何在 android 中使用内部 expat XML 解析器?

Android 小部件不会更新

html - 如何扩展 div 以覆盖父容器中的可用空间?

javascript - 将一项添加到数组中,而不是使用 javascript 重新列出整个数组