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仍然會觸發調試器。

相關問題