我正在構建一個原型Web應用程序,我想將它集成到Chrome網頁中(不需要用於生產)。 因此,我建立了一個後端解決方案,將我的所有js文件發送到一個請求中,並將結果發送到Chrome擴展客戶端,以實現組織和簡化目的。在Chrome擴展中調試匿名函數
myBackend.coffee(我自己的服務器的NodeJS)
getScript = (name) ->
filename = "#{__dirname}/../public/js/#{name}.js"
fs.readFileSync(filename, 'utf-8')
get '/chrome/includes', (req, res) ->
scripts = [
getScript 'vendor/jquery'
getScript 'vendor/jquery.ui'
getScript 'vendor/mousetrap'
getScript 'vendor/mustache'
getScript 'vendor/backbone'
#...
getScript 'main-chrome'
]
res.send
scripts: scripts
css: [
#...
]
backckground.coffee(Chrome用戶端)
$.ajax
url: "http://localhost:3001/chrome/includes"
success: (data) ->
compactedCode = ''
_.each data.scripts, (code) ->
compactedCode += code
chrome.tabs.executeScript tab.id, code: compactedCode
好了,這是很好的,但問題出現時,我做錯了代碼「compatedCode」。
鉻告訴我:
Uncaught TypeError: undefined is not a function (anonymous function) But not telling me where is the error.
https://docs.google.com/file/d/0B6tc60GuFE4WSk4zTXhzV1luOE0/edit?usp=sharing
我有很多的代碼,所以這是不是真的寫「調試」無處不在的選項。
我該怎麼做才能以熟練的方式進行調試?
你可以嘗試'嘗試{}趕上(E){}'塊? – 2013-02-11 10:35:39
如果可以的話,註釋掉'getScript'這行代碼,以查看它在哪個文件中,作爲開始。 – Cerbrus 2013-02-11 10:36:48
是的,已經評論了一些腳本,但是調試非常痛苦,因爲多個文件具有相同的「通用」錯誤。 所有的「compactedCode」在標準網頁中都能正常工作。 – Goaman 2013-02-11 10:42:37