javascript - 加载html后将js文件从assets加载到webview

标签 javascript android webview

我搜索了很多,但无法找到任何解决方案。我基本上是在 webview 中制作一个 epub 阅读器,它具有一些功能,如突出显示文本等。我​​为此制作了一些 javascript 文件。但是要在 html 页面中添加 js 文件,我需要在 html 文件中定义它,例如:

<script src='file:///android_asset/jquery.js'></script>

但由于 html 可以是任何文件,我必须使用其他方法加载文件。我尝试使用

view.loadUrl("javascript:loadScript('file:///android_asset/jquery.js','callback')");

但它没有加载我的 js(我调用了它的一些函数,但它们没有起作用)。

我也试过this解决方案,但没有奏效。基本上,我只需要在 webview 上加载我的 js 文件,以便我以后可以使用它的功能。这听起来像是一项简单的任务,但我无法为此找到任何解决方案。有什么想法吗?

最佳答案

您将要使用 loadDataWithBaseURL为了您的目的。

更新:

我没有在任何地方看到加载到页面中的实际方法 loadScript(),因此您可以在调用 javascript:loadScript() 之前尝试自己创建 loadScript 方法。

     view.loadUrl("javascript:function loadScript(url, callback)" +
                            "{" +
                            "    var head = document.getElementsByTagName('head')[0];" +
                            "    var script = document.createElement('script');" +
                            "    script.type = 'text/javascript';" +
                            "    script.src = url;" +
                            "    script.onreadystatechange = callback;" +
                            "    script.onload = callback;" +
                            "    head.appendChild(script);" +
                            "}");
view.loadUrl("javascript:loadScript('file:///android_asset/jquery.js','callback')");

关于javascript - 加载html后将js文件从assets加载到webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28099546/

相关文章:

javascript - 将 d3.js 与 aurelia 框架一起使用

javascript - angularjs 可拖动指令在内部显示值

Android WebView 以编程方式清除 Cookies 2017 API 25

javascript - 如何在 Javascript 中用视频标签替换音频标签或用另一个标签替换一个标签

javascript - 通过 jQuery 分离和清理数据属性中的标签

Android App 的工具栏标题未垂直居中

java - Eclipse Juno jar android 依赖问题

android - Android WebView 的 AppCache 正确设置

javascript - Android 应用程序上的 Webview 没有响应

ios - 在 iOS 应用程序中打开包含 PDF 文件的 ViewController 时出现奇怪的控制台输出