我似乎无法弄清楚 Chrome 调试工具。
我的 Chrome 版本为 21.0.1180.60 m。
我采取的步骤:
- 我按 ctrl-shift-i 调出控制台。
- 单击“源”,然后选择我要调试的相关 javascript 文件。
- 我通过在左侧行旁边的装订线上放置一个蓝色标签来设置断点,让代码停止。
- 我点击了我的网页(这是一个 php 渲染的页面)上的按钮来启动 javascript 代码。
- 代码成功运行,没有停止。
我还注意到观察表达式也不起作用。它一直告诉我我想要查看的变量未定义。
进一步测试发现是我的代码导致断点失败。它似乎在“$(”#frmVerification”).submit(function(){”行上失败。它不会进入该 function() 内的断点。
下面是:
//function to check name and comment field
var test = "this is a test";
var test2 = "this is another test";
function validateLogin(){
//if(userEmail.attr("value") && userPass.attr("value"))
return true;
//else
//return false;
}
//onclick on different buttons, do different things.
function ajaxRequest(){
}
$(document).ready(function(){
//When form submitted
$("#frmVerification").submit(function(){
var username = $("#username");
var token = $("#token");
var action = $("#action");
var requester = $("#requester");
if(validateLogin()){
$.ajax({
type: "post",
url: "verification.php",
data: "username="+username.html()+"&token="+token.val()+"&action="+action.val()+"&requester="+requester.val(),
success: function(data) {
try{
var jsonObj = $.parseJSON(data); //convert data into json object, throws exception if data is not json compatible
if(jsonObj.length > 0){//if there is any error output all data
var htmUl = $('<ul></ul>');
$.each(jsonObj, function(){
htmUl.append('<li>' + this + '</li>');
});
$("#errOut").html(htmUl);
}else{
alert("Your account is now activated, thank you. If you have already logged in, press OK to go to the home page. If not, you must log in first.");
window.location.replace("home.php");
}
}
catch(e){//if error output error to errOut]
$("#errOut").html("PHP module returned non JSON object: <p>"+data+"</p>");
}
}
});
}
else alert("Please fill UserName & Password!");
return false;
});
});
我不确定为什么你的断点没有命中,但进入代码的一种可靠方法是输入
debugger;
您希望代码停止的位置,然后在打开 chrome 开发人员工具窗口的情况下再次运行。
只需要注意一件小事,完成后一定要清理并删除调试器行。如果您曾经通过 YUI 压缩器运行 JavaScript 文件,那么存在debugger;
线将导致它出错。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)