2012-12-21 47 views
8

例如,我有一個ajax請求,它返回<script src='buggy.js'></script>動態加載的JavaScript不顯示在來源面板?

問題是,它不顯示在來源或資源面板中。這意味着我不能做所有酷酷的事情,比如添加斷點並在運行時檢查元素。

我只能看到網絡面板下的js文件的來源。

有無論如何使鉻添加到源面板?
或者你們如何去調試動態添加的腳本?

使用加納利。

+0

猜我發現一個變通方法http://stackoverflow.com/questions/9092125/how-to-debug-dynamically-loaded-javascriptwith-jquery-in-the-browsers-debugge – resting

+0

那麼你的腳本究竟是如何加載?如果您手動將具有src屬性的腳本標記插入到DOM中,那麼它應該出現在源面板中。如果腳本是通過eval添加的,或者使用某種javascript框架(例如jQuery)將其插入到DOM中,那麼您可能需要提供sourceURL才能使其工作。 – vsevik

回答

0
+0

如果相關腳本甚至不出現在源選項卡中,那麼這並不起作用。 –

+0

我想它不會被加載呢?你可以在網絡面板中看到它嗎? –

+0

是的,在我的特殊情況下,它顯示在網絡面板中。另外,如果我「斷開異常」,並且一些動態代碼拋出,那麼調試器會斷開並且該片斷顯示在一個新的選項卡中,該選項卡看起來像來自屏幕截圖[此處](http:// stackoverflow。 COM /問題/ 17367560 /鉻開發工具-VM-文件從JavaScript的)。在該選項卡中,完全調試似乎可用(變量,步進等)。所以我可以通過引入一個故意的例外來破解它,由於多種原因,這是不理想的。這是Chrome 28.0.1500.71。 –

2

我遇到了同樣的問題,我發現了一個比故意的例外更好的解決方法。它仍然需要更改代碼,而不是在chrome開發工具中設置斷點。

我嘗試使用OP作爲解決方法建議的「//#sourceURL = dynamicScript.js」,但它仍然沒有顯示出來,除非它已經存在於我以前的時間內的選項卡中它產生了一個例外。

對「調試器」進行編碼線迫使它在該位置中斷。然後,一旦它位於Sources面板的我的選項卡中,我可以像正常一樣設置斷點並刪除「調試器」;線。

+0

它也可能顯示在Sources選項卡下的(無域)列表中。 – Splaktar