Przepełnienie stosu w IE z JQuery (w linii 12/1076)
Używam JQuery z Google CDN i otrzymałem błąd przepełnienia stosu (przy użyciu IE8) w wierszach 12 (dla pliku min) i 1076 (dla nieskompresowanego). Kod JQuery w wierszu, do którego prowadzi błąd przepełnienia stosu, to:
JQuery.js ...
makeArray: function( array ) {
var ret = [];
if( array != null ){
var i = array.length;
// The window, strings (and functions) also have 'length'
// @ALL : this is the line i am getting error on ...
if( i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval )
ret[0] = array;
else
while( i )
ret[--i] = array[i];
}
return ret;
},
...
Oto mój kod: ...
$(document).ready(function(){
$("#newcmpgn").validate({
errorElement:'dt',
rules:{agree: "required"},
messages:{agree: "You need to accept to Terms and Conditions in order to continue."}
});
$("#newcmpgn").submit(function(){
if($("#newcmpgn").valid()){
var ubal = Number($("#userbalance").val());
var camt = Number($("#amount").val());
if(ubal > camt){
$("#newcmpgn").attr('action', '<?= site_url('account/payments/actpayment/'.$cmpgn_id) ?>');
return true;
}
if($("#autorenew").attr('value') == 'Y'){
$("#newcmpgn").attr('action', '<?= site_url('account/payments/makepayment/'.$cmpgn_id) ?>');
}else{
$("#newcmpgn").attr('action', '<?= site_url('account/payments/makesinglepayment/'.$cmpgn_id) ?>');
}
$("#newcmpgn").submit();
return true;
}
return false;
});
});
Błąd pojawia się podczas przesyłania formularza. Nie widzę tu żadnego kodu rekurencyjnego, który sprawiłby, że IE8 zacząłby płakać z powodu braku stosu?
Dzięki, Dw.