Visual Studio 2012没有命中断点javascript

时间:2014-05-22 19:44:23

标签: javascript google-chrome debugging visual-studio-2012 breakpoints

我正在用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

1 个答案:

答案 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);
}