All*_*Cat 128 debugging google-chrome-devtools
我在我的javascript文件(jaydata.js)中添加了一个断点,并按下"跳到下一个函数调用".当它到达一条线时:
},
Run Code Online (Sandbox Code Playgroud)
弹出另一个标题为"[VM](8312)"的文件.我一直点击"跳到下一个函数调用",现在我的屏幕是:
什么是这些奇怪而神秘的剧本名为"[VM](XXXX",它们来自哪里?
Rob*_*b W 100
[VM] (scriptId)没有特别的意义.它是一个虚拟名称,可帮助我们区分与文件名无直接关联的代码,例如使用eval和朋友创建的代码.
过去,所有这些脚本都是标记的(program).
如果您有兴趣,只需查看"[VM]"Chromium的源代码,您会发现这些数字在开发人员工具之外没有重要意义.
[VM] (scriptId)更名为VMscriptId 前一段时间,这里是直接链接到搜索结果再次值变化情况.
Sam*_*man 37
每当您通过AJAX加载HTML内容,并且该内容包含<script>标签时,将使用eval()评估该脚本,并将Chrome的Sources视图识别为以"VM"开头的新文件.您始终可以转到"网络"选项卡,查找AJAX请求,并完整地查看HTML响应,包括脚本.
Sul*_*lly 34
使用eval时,javascript会被抛入Chrome Debugger虚拟机.要在Chrome调试器源下查看使用eval创建的js,请在js的末尾(感谢Splaktar)设置此属性:
//@ sourceURL=dynamicScript.js
Run Code Online (Sandbox Code Playgroud)
可以通过WebKit,FireBug或IE8 Developer Tool等调试器来调试动态加载JavaScript吗?