我正在用 javascript 编写一个小项目,并尝试调试代码。
但是,当我在 Visual studio 2012 中放置断点时,它会显示“不会命中此断点”
。现在奇怪的是,断点位于 javascript Onloaded 函数中,即应该首先加载的函数。其他数组已经加载了值,但那是因为它们已经存在了一段时间,现在我添加了一段代码(将数组连接到一个大数组中),但 chrome javascript 控制台说该数组未定义。
这是我的代码,我添加了最后两行。
function onLoaded() {
defaultPage = document.getElementById('NounVerb');
tekenwaarde = defaultPage.content.findName('tekenwaarde');
totalValues = new Array();
for (var i = 0; i <= 13; i++) {
totalValues[i] = defaultPage.content.findName('total' + (i + 1));
}
nounValues = new Array();
for (var y = 0; y <= 13; y++) {
nounValues[y] = defaultPage.content.findName('noun' + (y + 1));
}
verbValues = new Array();
for (var z = 0; z <= 13; z++) {
verbValues[z] = defaultPage.content.findName('verbs' + (z + 1));
}
var allValues = new Array();
allValues = totalValues.concat(nounValues, verbValues);
}
在 Internet Explorer 中,这些断点被命中,但我在 IE 中的设计看起来一团糟,(这没问题,这必须只在 Chrome 中工作),但现在我无法正确测试它。 此外,即使我按下按钮来触发该函数,函数中的所有其他断点也不会被命中。
这是 Chrome 的问题还是其他什么问题,我真的不知道? 有人也遇到过这个问题吗?
问候 吉斯
最佳答案
如果从 Visual Studio 运行 Chrome,您仍然需要在 Chrome 本身中进行调试(并在 Chrome 调试器中设置断点)。如果您使用 Internet Explorer,则只能在 VS 中单步执行 JavaScript。
您的代码的问题是您没有声明一些变量。考虑重写该函数如下:
function onLoaded() {
var defaultPage, tekenwaarde, i,
max = 14,
totalValues = [],
nounValues = [],
verbValues = [],
allValues = [];
defaultPage = document.getElementById('NounVerb');
if (!defaultPage || !defaultPage.content) {
return;
}
tekenwaarde = defaultPage.content.findName('tekenwaarde');
for (i = 1; i <= max; i++) {
totalValues.push(defaultPage.content.findName('total' + i));
nounValues.push(defaultPage.content.findName('noun' + i));
verbValues.push(defaultPage.content.findName('verbs' + i));
}
allValues = totalValues.concat(nounValues, verbValues);
}
关于javascript - Visual Studio 2012 未命中断点 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23815800/