2014-11-14 182 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

相关问题