Czyli staly problem, ale tym razem na nowo

Moj problem dotyczy tylko i wylacznie przegladarki firefox w wersji 2.x.x.x.
Pod 3.0, jak i pod IE/Opera/Chrome moj skrypt dziala bez zarzutu.
Wyglada to tak.
W pliku htmlowym mam link:
<a href="#" title="Przenieś zaznaczone wiadomości do wskazanego folderu" onclick="moveMessages(); return false;" target="_self">
Ww. funkcja wyglada tak:
function moveMessages()
{
var toFolder;
toFolder = crossModalDialog ('toolbar.php?showFolders=1&move=1', 300, 400);
if (toFolder)
{
copyOrMoveMessages(true, toFolder);
}
}
funkcja crossModalDialog:
function crossModalDialog(url, width, height)
{
var top;
var left;
top = (screen.availHeight - height) / 2;
left = (screen.availWidth - width) / 2;
if (top < 0) top = 0;
if (left < 0) left = 0;
if (window.showModalDialog)
{
return window.showModalDialog(url, window.self, 'dialogHeight: '+height+'px; dialogWidth: '+width+'px; help: no; resizable: yes; scroll: yes; status: no;');
}
else
{
if (dialogWindow && !dialogWindow.closed && dialogWindow.close)
{
dialogWindow.close();
}
dialogWindow = window.open(url, '_blank', 'toolbar=no,menubar=no,directories=no,resizable=yes,width='+width+',height='+height+',top='+top+',left='+left+',scrollbars=yes,status=no');
return null;
}
}
W tym momencie mamy okienko z lista folderow.
Sa tam linki do skryptu ze zdarzeniami onClick, np. "onclick="copyOrMoveMessages(true, 'INBOX.Drafts');"
Wybieram ten link i mamy:
copyOrMoveMessages:
function copyOrMoveMessages(isMove, toFolder)
{
if (window.dialogArguments)
{
window.returnValue = toFolder;
return;
}
if (isMove)
{
moveMessagesTo(toFolder);
}
}
moveMessagesTo:
function moveMessagesTo(toFolder)
{
return selectedMessagesAction('move', false, toFolder);
}
selectedMessagesAction:
function selectedMessagesAction(action, confirmText, toFolder)
{
if (!countSelectedMessages())
{
alert(getParameter('selectMessages'));
return false;
}
if (!confirmText || confirm(confirmText))
{
document.forms['messages'].elements['action'].value = action;
if (toFolder)
{
document.forms.messages.elements['to'].value = toFolder;
}
document.forms.messages.submit();
}
return true;
}
I teraz ta newralgiczna funckja:
function countSelectedMessages()
{
var count = 0;
var i;
var f = document.getElementById('messages');
for (i=0; i<f.elements.length; i++)
{
if (f.elements[i].name.indexOf('mid[') == 0 && f.elements[i].checked)
{
count++;
}
}
return count;
}
No i efekt jest taki, za zaznaczam wiadomosci, klikam na link, wyskakuje okienko z lista folderow i gdy klikam na folder, to JavaScript zwraca blad "f has no properties" i wskazuje na linijke "for (i=0; i<f.elements.length; i++)" w funkcji countSelectedMessages.
Probowalem juz zamienic document.getElementById('messages') na document.getElementsById('messages')[0].
Probowalem tez z with(document.forms.messages){..}.
Niestety ciagle jest ten sam problem - firefox 2...
Ma ktos jakas koncepcje?
Ten post edytował Archbishop 14.10.2008, 12:49:02
Destruction cometh; and they shall seek peace, and there shall be none. - Bible, Ezekiel 7:25