Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Проверка существования файла в iframe (https://javascript.ru/forum/dom-window/31931-proverka-sushhestvovaniya-fajjla-v-iframe.html)

Andrey_szr 26.09.2012 18:04

Проверка существования файла в iframe
 
В iframe (name='test') грузится файл.
Подскажите как можно через if проверить наличие файла в нем.
П.С. Эта конструкция у меня должна работать в цикле for.

Для примера: пробовал document.getElementsByName('test')[0].contentWindow.document.getElementById('name')=nul l;

dmitriymar 26.09.2012 18:37

Цитата:

Сообщение от Andrey_szr
наличие файла в нем

это как?

Andrey_szr 26.09.2012 18:45

Циклом в iframe подгружается файл 1001, 1002, 1003.html. К примеру файла 1004.html нет и следующий файл 1005.html.
Как можно проверить подгружено ли что-либо в iframe, если да-выполнить программу, если нет-перейти к следующей итерации цикла.

dmitriymar 26.09.2012 18:52

события onload, onerror фрейма

Andrey_szr 26.09.2012 18:54

спасибо. попробую

Andrey_szr 26.09.2012 22:55

Так ничего и не получилось. Изломал уже всю голову.

function addtable2(){
	var table2=document.getElementById('tab1');
	var test=document.getElementsByName('test');//Находим iframe
	var numb=1;
	var src2=1001;
	for(i=0;i<23;i++){
		src0=src2+'.html';
		test[1].src=src0;//Загоняем в iframe 1001.html
		nametemp=document.getElementsByName('test')[1].contentWindow.document.getElementById('name');//берем наименование из файла
		name=nametemp.firstChild.nodeValue;//берем значение ячейки с наименованием из файла
		var row=document.createElement('tr');
		row.bgColor='#FFFF99';
		var td21=document.createElement('td');
		var td22=document.createElement('td');
		var td23=document.createElement('td');
		td21.innerHTML=numb+i;
		td22.innerHTML=name;
		td23.innerHTML='&nbsp';
		row.appendChild(td21);
		row.appendChild(td22);
		row.appendChild(td23);
		table2.appendChild(row);
		src2++;
	}
}


Получается следующее: в iframe в качестве источника подгружается 1001.html, из него берется значение и подставляется в таблицу, далее в качестве источника берется файл 1002, 1003 и т.д., но в таблицу второй строкой (и далее) подгружается параметр "name" из файла 1001.
В итоге, перебрав, согласно цикла, требуемый диапазон, я, тем не менее, получаю таблицу в которой столбец 1 пронумерован, а во втором столбце одно и то же значение. Как побороть эту проблему?
Всем заранее признателен за помощь.

lord2kim 27.09.2012 10:46

Andrey_szr, во-первых вы загружаете в плавающий фрейм каждый раз один и тот же файл...1001.html
во-вторых попробуйте вызывать 9 строку на событии onload или onerror для iframe-а, как посоветовал dmitriymar

Andrey_szr 27.09.2012 11:17

Если в конец цикла вставляю alert(''); 24-й строкой, то все работает, но каждый раз приходится снимать окно алерта.
lord2kim, Вы правы. Все, что описано мною выше присходит только при повторном запуске функции. При первом запуске происходит только заполнение фрейма файлом 1001.html.

lord2kim 27.09.2012 12:13

Andrey_szr, нужно как то так
src2 = "10";
...
src0=src2+(i < 11 ? "0"+i : i)+'.html';


Часовой пояс GMT +3, время: 21:16.