Chrome开发工具:来自javascript的[VM]文件

我在我的javascript文件(jaydata.js)中添加了一个断点,然后按“进入下一个函数调用”。当到达一行时:


},

弹出另一个名为“ [VM](8312)”的文件。我一直单击“转到下一个函数调用”,现在的屏幕是:

http://img4.mukewang.com/5d99903a000143f705670218.jpg

这些标题为[[VM](XXXX“)的奇怪而神秘的脚本是什么,它们来自何处?


阿波罗的战车
浏览 1817回答 3
3回答

慕无忌1623718

如果要在chrome中调试以编程方式注入的JS文件,可以使用该debugger;语句,这比查找脚本的位置要快,而且比使用sourceurl生成文件要快。它像断点一样工作,无论您在何处使用该debugger;语句,都可以自动在chrome源选项卡中精确定位您的代码。

缥缈止盈

[VM] (scriptId)没有特别的意义。这是一个虚拟名称,可帮助我们区分与文件名不直接相关的代码,例如使用eval和朋友创建的代码。过去,所有这些脚本都被标记为(program)。如果您有兴趣,只需查看"[VM]"Chromium的源代码,您会发现这些数字在开发人员工具之外没有重要意义。[VM] (scriptId)已重命名为VMscriptId 前一阵子,这是到搜索结果的直接链接,以防该值再次更改。

噜噜哒

每当您通过AJAX加载HTML内容且该内容包含<script>标签时,该脚本都会使用eval()进行评估,并被Chrome的Sources视图识别为以“ VM”开头的新文件。您始终可以转到“网络”标签,找到AJAX请求,然后查看包括脚本在内的整个HTML响应。
打开App,查看更多内容
随时随地看视频慕课网APP