jQuery.getScript在Chrome开发者工具中将文件显示为资源
Can jQuery.getScript show the file as a resource in Chrome Developer Tools?
我的代码需要按需加载脚本。
function includeJS(uri) {
return jQuery.getScript(uri);
}
includeJS('/path/to/script.js').always(function() {
// do something after script is loaded
});
但是,问题是JS文件在Chrome Developer工具中不可用,就像页面上静态包含的其他文件一样。因此,我不能轻易地设置断点。
是否有jQuery的替代品?getScript,也将显示在Chrome开发人员工具的脚本与放置断点的能力?
编辑:根据目前接受的答案添加解决方案(我仍然会考虑其他解决方案,但这似乎对我有效)
function includeJS(uri) {
var def = $.Deferred();
var script = document.createElement('script');
script.src = uri;
script.onload = function() {
def.resolve();
}
script.onerror = function() {
def.reject();
}
document.body.appendChild(script);
return def.promise();
}
您可以简单地附加script
标记,并使用onload
处理程序来执行加载后的操作。例如:https://jsfiddle.net/0nu2dusu/
var script = document.createElement('script');
script.src = 'my_external_script.js';
script.onload = loadHandler;
document.body.appendChild(script);
与$.getScript
相比,您对失败负载的控制略少,但脚本确实显示在开发工具中。
实际上它一直在那里。看看jQuery.getScript()站点中的一个例子。这是它的样子:https://i.stack.imgur.com/VcFqX.png。.getScript()
的问题是它从不缓存请求的文件,因此在每次调用时它都会添加一些随机字符串来防止缓存(这也阻止了我们调试代码)。但是有一个解决方法:
-
在调用
.getScript()
之前设置全局.ajax
缓存(不推荐):$.ajaxSetup({ cache: true });
-
直接呼叫
.ajax()
(推荐):$.ajax({ dataType: "script", cache: true, url: url }
-
如果是你自己的脚本,你可以随时在任何地方添加
debugger;
命令来强制浏览器进入调试模式(必须打开DevTools)。
相关文章:
- 将不同上传的文件显示为缩略图或任何其他方式
- 如何使用.log数据文件显示EXT-js网格
- 在Asp.net的空网站中,如何改变"Web.config”;使内容(.js)文件显示在浏览器中,而不是下载
- 当一次加载所有文件时,是否有来自阵列的10个随机闪存文件显示在页面上?(在javascript中)
- 如何为使用 JSP 生成的下载文件显示“保存文件”对话框
- 三个js使用大尺寸的json文件显示3D图像
- 如何将本地 html 文件显示在 Web 视图中
- 为什么获胜't我的KML文件显示在谷歌地图上
- 在我的一个网站上,一个文件显示为404,但文件在那里
- Javascript:用Javascript文件显示奇特的警报
- 我认为我的服务器坏了,不存在的文件显示在Chrome中
- 在JS时间轴上以JSON文件显示时间
- 在angularjs中使用$http将json文件显示给视图
- 使用sujith3g: jtree,将文件显示为树中的文件夹
- 解析文件显示随机的字母数字文本在textView Android
- jQuery.getScript在Chrome开发者工具中将文件显示为资源
- 如何使JavaScript文件显示在“脚本”下的列表中?在谷歌浏览器
- 使用flot.js和数据源作为外部json文件显示漏斗图
- Javascript Regex内容文件显示为表
- Nodejs - svg文件显示为xml