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,17 +16,15 @@
// 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];
@ -34,13 +32,11 @@ function do_unshift(l, s) {
l[0] = s; l[0] = s;
return l.length; return l.length;
} }
else {
return l.unshift(s); // 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];
@ -48,10 +44,6 @@ function do_shift(l) {
l.length = l.length - 1; l.length = l.length - 1;
return l0; return l0;
} }
else {
return l.shift();
}
}
function go_to (url) { function go_to (url) {
document.location.href = url; document.location.href = url;