我想對現有的vb.net網站做一些小改動,這個改動是由不再爲公司工作的人編寫的,但每次javascript函數是從腳本文件中調用的,而不是它定義的腳本文件,我在Chrome的控制檯中看到「Uncaught Reference Error:undefined不是函數」。從不同的javascript文件調用函數導致「undefined不是函數」
一些腳本被加載主文件中:
<script type="text/javascript" src="Scripts/jquery-1.8.3.min.js"></script>
<script type='text/javascript' src="Scripts/JSExtensions.js"></script>
<script type='text/javascript' src="Scripts/GlobalUtilityFunctions.js"></script>
<script language="javascript" type="text/javascript">
jQuery.event.add(window, "load", resizeFrame);
jQuery.event.add(window, "resize", resizeFrame);
function resizeFrame() {
}
</script>
其餘的都在頁面本身加載:
<script type='text/javascript' src="Scripts/GridCalcFunctions.js"></script>
<script type='text/javascript' src="Scripts/InputEventHandlers.js"></script>
<script type='text/javascript' src="Scripts/FocusHandlers.js"></script>
<script type='text/javascript' src="Scripts/ProjectPageFunctions.js"></script>
<script type="text/javascript">
$(document).ready(function() {
});
$(window).unload(function() {
SaveOnExit();
});
function setPIDNumberLabel(ctlID, strVal) {
var val = strVal;
var ctl = top.$get(ctlID);
if (ctl != null) {
ctl.innerHTML = val;
}
}
</script>
GlobalUtilitesFunctions毫不費力地訪問其他網頁JSExtensions,但在這裏儘管兩者都加載在主文件中。我認爲這必定意味着問題是由本頁面上加載的文件之一引起的,但將它們全部註釋並不能解決問題。
作爲一個具體的例子,GlobalUtilitiesFunctions包含此:
function GetAttributeSelector(attName, attValue, attOperator,attNot) {
attOperator = String.deNullValue(attOperator, "=");
[more code]
}
我也得到一個錯誤,String.deNullValue是不確定的,但隨着在JSExtenstions是:
String.iifValueIsNullOrEmpty = function (val, trueVal,falseVal) {
falseVal = String.getArgValue(falseVal, val);
if (String.isNullOrEmpty(val)) {
return trueVal;
}
else {
return falseVal;
}
}
String.deNullValue = function (val,defaultVal) {
var ret = "";
defaultVal = String.iifValueIsNullOrEmpty(defaultVal,"");
ret = String.iifValueIsNullOrEmpty(val,defaultVal);
return ret;
}
我也試過在服務器上運行該站點(而不是在Visual Studio中)而不解決問題。有沒有人有一個想法可能會導致這種情況?
功能都是你加載的文件,加載正確和有您要使用的方法?如果他們在那裏,確保他們首先被加載。您可能正試圖在方法被加載到其文件之前使用方法。 –
查看控制檯堆棧跟蹤並嘗試用方法拋出錯誤來解決。然後檢查使用此方法的JavaScript是否包含在您實際看到的頁面中。 –
@SpencerWieczorek所有的頁面都被加載並且包含有問題的方法。 – octothorpentine