Нужна помощь в доработке скрипта под FireFox, скрипт формирует HTML код с тегами IMG на случайные ресурсы изображений расположенных в каталоге imgh, HTML код формируется для элемента imgcontainer:
<span id="imgcontainer"><script>initiate()</script></span>
полный код скрипта:
var imgwidth=150
var imgheight=120
//количество отображаемых картинок
var imgview=3
//количество фотографий в каталоге ресурсов
var imgcount=52
var pos_left=10
var pos_top=10
var cliptop=0
var clipbottom=imgheight
var clipleft=0
var clipright=imgwidth
//массив хранения ссылок на большое фото
var imgurl=new Array
//массив хранения ссылок на маленькое отображаемое фото
var imgname=new Array
//массив случайных чисел - нужен для формирования пути вида "[путь к каталогу ресурсов]\[случаное число].jpg
var rand=new Array
var rep=0
// функция исключающая повторение значений в массиве rand
function notrepeat(len,el){
rep=0
var j=0
while (j<=len) {
if(el==rand[j]){rep++}
//alert(el+" "+rand[j]+" "+rep)
j++
}
}
//формируем массив rand
for (i=0;i<=imgview-1;i++) {
do{
var randnum = Math.random();
//формируем i элемент массива rand в диапазоне от 1 до imgcount
rand[i]=Math.round((imgcount - 1) * randnum) + 1
//осуществляем проверку на уникальность i элемента
notrepeat(i-1,rand[i])
//alert(rep)
//если i элемент не уникален(rep-глобальная переменная что задается в функции notrepeat), то заново проходим цикл, понимаю, что это очень не красиво, но это все на что хватило моих познаний в javascript для формирования массива случайных чисел без повторяющихся значений
}while(rep>0);
}
//формирование путей
for (i=0;i<=imgview-1;i++) {
imgname[i]="imgh/"+rand[i]+"s.jpg"
imgurl[i]="imgh/"+rand[i]+".jpg"
}
function imgpreloder(){
var imgpreload=new Array()
for (i=0;i<=imgview-1;i++) {
imgpreload[i]=new Image()
imgpreload[i].src=imgname[i];
}
}
function putimagesIE() {
var str=""
for(i=0;i<=imgview-1;i++) {
str=str+"<a href='"+imgurl[i]+"' target='_blank'><img width='"+imgwidth+"' height='"+imgheight+"' src='"+imgname[i]+"' border='0'></a><br>"
}
imgcontainer.innerHTML=str
}
function putimagesNN() {
for(i=0;i<=imgview-1;i++) {
document.imgcontainer.document.write("<a href='"+imgurl[i]+"' target='_blank'><img width='"+imgwidth+"' height='"+imgheight+"' src='"+imgname[i]+"' border='0'></a><br>");
}
document.imgcontainer.document.close()
}
function initiate() {
if (document.all) {
document.all.imgcontainer.style.posLeft=pos_left
document.all.imgcontainer.style.posTop=pos_top
document.all.imgcontainer.style.clip="rect("+cliptop+" "+clipright+" "+clipbottom+" "+clipleft+")"
putimagesIE()
}
if (document.layers) {
document.imgcontainer.left=pos_left
document.imgcontainer.top=pos_top
document.imgcontainer.clip.left=clipleft
document.imgcontainer.clip.right=clipright
document.imgcontainer.clip.top=cliptop
document.imgcontainer.clip.bottom=clipbottom
putimagesNN()
}
}
к сожалению данный скрипт отрабатывает как надо только в IE и Opera, но ни как не в FireFox.
Поскольку в javascript я полный ламер, я был бы рад выслушать всю критику написанного мной скрипта, особенно советы по улучшению.
Заранее большое спасибо.