1

我写了一个小项目在JavaScript中,我试图调试代码。 但是,当我在Visual Studio 2012中放置一个断点时,它说'This breakpoint will not be hit'。现在奇怪的是,断点站在JavaScript Onloaded函数中,应该首先加载。其他数组已经加载了值,但是这是因为他们已经存在了一段时间,现在我添加了一段代码(将数组连接到一个大数组中),但chrome JavaScript控制台表示数组未定义。Visual Studio 2012不命中断点javascript

这是我的代码,我添加了最后2行。

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

您是否在使用SilverLight? – mhu

+0

@mhu,是的,昨天从微软网站下载了一个新版本 – Gijs

+0

你在哪里设置断点?在VS或Chrome中?如果您从VS运行Chrome,则仍然需要在Chrome本身进行调试(并在Chrome调试器中设置断点)。 – mhu

回答

1

如果您从Visual Studio中运行浏览器,你仍然需要在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); 
} 
+0

即使代码替换我的视觉工作室也不会停止任何断点 – Gijs

+0

但是,这是否解决了“数组是未定义的”错误? – mhu

+2

@Gijs。它不会。你只能使用IE调试Javascript。 – phuzi