2014-11-14 143 views
0

我們正在嘗試使用JavaScript構建Windows 8本機應用程序。我們使用jQuery動態加載JavaScript文件,並且所有的JavaScript文件都存儲在應用程序內部。當我嘗試調試JavaScript時,斷點無法命中,並說「斷點當前不會點擊....」,但在解決方案資源管理器中有一個Script Documents項目,有一個名爲「script塊「,其中包含所有從jQuery加載的javascript。我可以從那裏調試後禁用「啓用只是我的代碼」,但很難找到放置斷點的正確位置,因爲這個文件是巨大的...如何在Visual Studio 2013中調試javascript

其實所有的javascript文件都有sourcemap屬性,例如://#sourceURL = ms-appx://d664ef20-6ac8-11e4-ab78-2f4dc8b50d53/www/resources/abc.js

它適用於所有瀏覽器,IE,Safari,Firefox和鉻。但Visual Studio似乎無法識別它們。

任何人有同樣的問題?

問候, 曉軍

+0

你是如何通過jQuery加載JavaScript的?如果將它們作爲腳本文件正常包含,它是否按預期工作? – 2014-11-14 21:40:18

+0

不,它們通過ajax調用加載,即使它們位於本地磁盤上,然後使用window.eval來執行它們。 – Xiaojun 2014-11-15 00:26:20

+0

如果您嘗試插入「調試器」;關鍵字在哪裏你通常會設置一個斷點,執行暫停時,它擊中關鍵字? – 2014-11-17 18:36:53

回答

0

我希望你這樣做,這evals內容作爲一個字符串,導致該字符串被添加到下腳本文件的「EVAL代碼」文件。請注意,您仍然可以設置斷點,您只需從「eval code」文檔中進行設置即可。

// eval via AJAX -- adds to the "eval code" document 
$.ajax("./js/fileToAdd.js").done(function (data) { 
    window.eval(data); 
}); 

如果您通過腳本標籤加載該文件,腳本文件分別裝載和斷點綁定按預期的內容聯繫在一起的文件,而不是一個字符串。方法如下:

// Add <script> tag to head -- Causes script file to be loaded/displayed individually 
var scriptTag = document.createElement("script"); 
scriptTag.src = "./js/fileToAdd.js" 
document.head.appendChild(scriptTag); 
+0

嗨,亞當,謝謝你的幫助。如果我們使用腳本來加載文件,腳本將不會立即執行。

abc

Xiaojun 2014-11-18 01:13:48

+0

只要代碼塊運行,這仍然會延遲加載它。你可以將第二塊代碼包裝在一個函數中(可能帶有一個文件名參數),然後在想要加載代碼時調用它。 – 2014-11-18 01:20:22

+0

我知道,我們有一大堆這樣寫的js文件,不能改變這一點。 – Xiaojun 2014-11-18 01:24:38

相關問題