Re-fix for bug 77699: the undefined error affected other browsers than just IE5, so work around it for all browsers.

Patch by Stephen Lee <slee@uk.bnsmc.com>
r= afranke@ags.uni-sb.de
This commit is contained in:
justdave%syndicomm.com 2001-07-20 08:25:30 +00:00
Родитель 192a6ccda0
Коммит ad9910175d
1 изменённых файлов: 17 добавлений и 25 удалений

Просмотреть файл

@ -16,41 +16,33 @@
// Contributors: // Contributors:
// Stephen Lee <slee@uk.bnsmc.com> // Stephen Lee <slee@uk.bnsmc.com>
// variable below should be initialised according to whether
// browser is IE 5.0 or earlier, but should be false for IE 5.5
var is_IE5=(navigator.appVersion.search(/MSIE 5.0/g)>0); // Use no_result variable to avoid problems with "undefined" on some browsers
// Bodge to get round IE5 not understanding "undefined", "shift" and "unshift" var no_result="---";
var no_result=is_IE5?"---":undefined; // do_unshift(l, s) is equivalent to l.unshift(s), but some browsers do not
// support the built-in function.
function do_unshift(l, s) { function do_unshift(l, s) {
if(is_IE5) { l.length = l.length + 1;
l.length = l.length + 1; for (var i=l.length-1; i>0; i--) {
for (var i=l.length-1; i>0; i--) { l[i] = l[i-1];
l[i] = l[i-1];
}
l[0] = s;
return l.length;
}
else {
return l.unshift(s);
} }
l[0] = s;
return l.length;
} }
// do_shift(l) is equivalent to l.shift(s), but some browsers do not
// support the built-in function.
function do_shift(l) { function do_shift(l) {
if(is_IE5) { var l0=l[0];
var l0=l[0]; for (var i=0; i<l.length-1; i++) {
for (var i=0; i<l.length-1; i++) { l[i] = l[i+1];
l[i] = l[i+1];
}
l.length = l.length - 1;
return l0;
}
else {
return l.shift();
} }
l.length = l.length - 1;
return l0;
} }
function go_to (url) { function go_to (url) {