比方說,我們有一個網頁包含此內嵌腳本:如何在動態添加的JavaScript文件的開頭暫停執行?
<script>
(function() {
var script = document.createElement('script');
script.src = 'http://remote.com/external.js';
document.body.appendChild(script);
}());
</script>
正如你所看到的,外部腳本,external.js
,追加到該頁面。
我想在該外部腳本的開頭暫停執行。我是而不是能夠編輯該外部腳本。 (如果我是,我只是在該文件的頂部插入一個debugger;
聲明。)
我目前停在這條語句(上面的腳本):
document.body.appendChild(script);
有沒有其他頁面上的SCRIPT元素,因此,如果我恢復執行,將要執行的下一條語句將成爲外部腳本的第一條語句。
如何命令Chrome的開發工具在下一條語句中暫停執行? 「跳過」命令僅在同一個調用堆棧中工作。
爲什麼我需要這樣的:(這僅僅是背景你並不需要閱讀本。)W3C的HTML5 404頁,包含的頁面加載調用的script with a fixBrokenLink
function。該功能然後動態地將fragment-links.js腳本添加到頁面。我想穿過該腳本。我的目標是瞭解腳本如何「修復斷開的鏈接」。當然,我可以靜態分析該腳本,但我更願意通過開發工具直接執行代碼。如果我不認爲這是可能的,我不會問這個問題。
解決辦法:
如果它不是從接受的答案明確,一個人只要邁過document.body.appendChild(script);
聲明,使執行暫停在大括號}
(見上面的代碼)。此時,Chrome會在後臺加載外部腳本,以便最終顯示在開發工具中。一旦完成,可以在該腳本中設置一箇中斷點,然後繼續執行到該中斷點。
Opera的蜻蜓可以讓你 「[*上一個新的腳本的第一條語句歇*](http://www.opera.com/dragonfly/documentation/debugger/)」。我認爲Chrome devtools有類似的選擇,不是嗎? – Bergi
@Bergi OMG,OMG,OMG ...現在測試... –
哦,來吧,*你*真的可以靜態分析[小腳本](http://www.w3.org/TR/html5 /fragment-links.js),它沒有魔力:-)但有效的問題。 – Bergi