0

我想在本地调试一些Javascript,但我遇到了一个奇怪的问题。如果我像打开本地文件:Chrome调试器不能在本地文件上工作

<html> 
    <head> 
     <script src="file.js"></script> 
    </head> 
    <body></body> 
</html> 

与file.js那就是:

(function() { 
    'use strict'; 
    debugger 
})(); 

它不能停留在调试线。但是,如果我在Firefox/Firebug中打开完全相同的文件,它会在该行上停顿。另外,如果我将调试器行添加到本地服务器上的文件(即,http://文件而不是file://文件),则Chrome调试器将按预期暂停。

这个问题仅在Chrome中显示(据我所知)与本地文件。然而,我GOOGLE了很多,我一直没能找到任何类型的“禁用本地文件调试器”选项的Chrome或类似的东西(我可能会意外启用)。

有没有人见过这个之前,如果是的话,你能解决它?

回答

1

事实证明,问题是我添加到Chrome的一面旗帜。默认情况下,Chrome浏览器不会让你的本地文件访问其他本地文件,所以我已使本地文件加载使用命令行标志:

--allow-file-access-from-files 

这伟大的工作,但它造成的副作用我没有”不知道:当你运行本地文件(或至少本地文件加载其他本地文件)Chrome显然是“沙箱”他们。不幸的是,Chrome也拒绝调试“沙盒”代码,这意味着我的调试器神秘失败。

所以,谁想要在Chrome中运行的本地文件(比如运行一个基于Web的测试框架),诀窍是先添加上面的标志,但随后也加入这个标志:

--allow-sandbox-debugging 

,这样当代码在本地文件中包含debugger行时,Chrome仍然会触发调试器。

相关问题