近期在做一個(gè)項(xiàng)目,會(huì)遇到在子頁面中提交的時(shí)候會(huì)無法能夠調(diào)試javascript代碼的情況出現(xiàn),有時(shí)候這種問題,我們無法正常在瀏覽器,看到我們子頁面的javascript代碼,所以只能夠用原始的alert 或者 console.log(),當(dāng)然,這也是一種解決方法,但是有時(shí)候,我們就想看一下程序到底是如何運(yùn)行的,同時(shí)也可以看每個(gè)參數(shù)到底是什么值,所以意義還是比較大的。
我貼張圖,大家就大概了解是什么時(shí)候會(huì)出現(xiàn)這個(gè)問題了。
<script>
function stopWatchDog(watchDogId) {
alert("aa");
var url = '<s:url value="/watchDog/stopWatchDog"/>';
var params = {
watchDogId : watchDogId,
};
$.post(url, params, function(data) {
if (data.success) {
closeDialog();
tbGrid.send();
} else {
if (data.errorMsg != null && data.errorMsg != "") {
jAlert(data.errorMsg, "系統(tǒng)消息");
} else {
jAlert("停止異常", "系統(tǒng)消息");
}
$("#saveBtn").removeAttr("disabled");
$("#saveBtn").css("color", "white");
}
}, "json");
}
</script>
這個(gè)其實(shí)是函數(shù)聲明,大家如果了解javascript上下文的話,就知道其實(shí)函數(shù)聲明只是在頁面上下文加載的時(shí)候加載的函數(shù)名,其函數(shù)內(nèi)容無法正常加載。
如果我們換成函數(shù)自執(zhí)行或者是在函數(shù)自治性中定義這個(gè)函數(shù)聲明的話,那么就可以解決這個(gè)問題了。
(function(){
function stopWatchDog(watchDogId) {
alert("aa");
var url = '<s:url value="/watchDog/stopWatchDog"/>';
var params = {
watchDogId : watchDogId,
};
$.post(url, params, function(data) {
if (data.success) {
closeDialog();
tbGrid.send();
} else {
if (data.errorMsg != null && data.errorMsg != "") {
jAlert(data.errorMsg, "系統(tǒng)消息");
} else {
jAlert("停止異常", "系統(tǒng)消息");
}
$("#saveBtn").removeAttr("disabled");
$("#saveBtn").css("color", "white");
}
}, "json");
}
})();