Android WebView:在javascript中,有没有一种方法可以加载另一个javascript文件,并为堆栈
Android WebView: is there a way, in javascript, to load another javascript file and preserve filename/line number information for stack traces?
我有一个WebView。它有一些javascript。我需要动态地、同步地加载更多存储在assets文件夹中的javascript。
当我手动从资产中提取代码并将其作为字符串传递时,eval()工作得很好。
问题是堆栈跟踪对于使用字符串eval引入的代码没有用处。你只需要在(file:///android_asset/..."
有没有其他方法可以从javascript中动态引入javascript代码,从而使堆栈跟踪变得有用?
(仅供参考,我只是使用WebView作为javascript引擎,这样我就可以使用我们现有的许多跨平台javascript。它不会显示任何有用的HTML。)
编辑:
你可以添加这个:
/@ sourceURL=snarkloading.js
对于被求值的字符串,您将得到snarkloading.js作为文件名。
您可以加载这样的脚本。。。
var script = document.createElement('script');
script.setAttribute("src", "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js");
script.onload = function () {
// Do your thing when script is loaded
alert('script loaded');
};
document.documentElement.appendChild(script);
在onload事件处理程序中编写代码。这是代码实际下载并可用的时候。
更新有一种方法可以同步下载脚本。我记得为此使用了jQueryAjax函数和以下选项。
异步(布尔)
默认值:真
默认情况下,发送所有请求异步(即默认情况下设置为true)。如果您需要同步请求,将此选项设置为false。跨域请求和dataType:"jsonp"请求不支持同步操作。注意,同步请求可以临时锁定浏览器,在请求处于活动状态时禁用任何操作。从jQuery 1.8开始,不赞成使用async:false。
您可以在Ajax的jQueryneneneba API文档中阅读更多关于这方面的内容。该文档指出,它在jQuery 1.8中已被弃用。但是,如果你能找到一个旧版本,你可以使用它,或者弄清楚它们是如何做到的
- HTML外部javascript加载另一个javascript
- 什么是谷歌地图'的javascript加载策略
- 使用javascript加载knockoutjs组件
- Javascript - 加载函数运行时未定义的变量
- 使用javascript加载并显示来自另一个域的页面,而不显示原始URL
- 使用Javascript加载页面
- Javascript加载时间过长
- 使用纯Javascript加载外部URL内容
- 如何在使用javascript加载页面时直接设置对象参数
- 每次使用 Javascript 加载页面时增加一个数字(变量)的简单方法
- 将外部 SVG 和包含 JavaScript 加载到 HTML 中
- 是否有一个 JavaScript 加载器可以将套接字的数量限制为 1 或 2
- 使用本地生成的代码通过 JavaScript 加载 IFrame
- Jquery/javascript:加载页面时不需要的重复函数
- 一段时间后使用Javascript加载网页ASP.net
- 在https网站上用javascript加载封面图片
- 如何使用cURL获取JavaScript加载的网络内容
- 如何检查是否使用javascript加载了框架?-不是加载,不是iframe
- I'我正在尝试将JavaScript加载到我的UIWebView中
- 如何用Javascript加载本地文件