我正在用javascript编写一个小项目,我正在尝试调试代码。
但是当我在Visual Studio 2012中放置一个断点时,它会说'This breakpoint will not be hit'
。现在奇怪的是,断点位于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或其他什么问题,我真的不知道? 还有人有这个问题吗?
此致 的Gijs
答案 0 :(得分:1)
如果您从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);
}