Javascript-форум (https://javascript.ru/forum/)
-   Firefox/Mozilla (https://javascript.ru/forum/css-html-firefox-mizilla/)
-   -   Скрипт не работает в FF и опера, но работает в IE(в чем дело???) (https://javascript.ru/forum/css-html-firefox-mizilla/6673-skript-ne-rabotaet-v-ff-i-opera-no-rabotaet-v-ie-v-chem-delo.html)

Cepera 14.12.2009 13:18

Скрипт не работает в FF и опера, но работает в IE(в чем дело???)
 
Всем привет! Подскажите пожалуйста в чем может быть дело. Скрипт который ищет данные в xml файле отлично работает в IE но никак не хочет работать в FF и Opera. Ниже приведена функция поиска. Извините что много написано, просто мало ли в чем может быть дело :)
Путем дебага удалось выяснить место ошибки (в коде текст выделен жирным) В IE name и path отлично считывают из файл xml, а в других браузерах нет :(
Причем когда проводилась отладка чисто случайно я вставил кода выделенного жирный
alert(name.length);
, ну просто чтобы проверить возвращается массив элементов или нет.
Результат: IE = для больше нуля, FF = 0, но код отрабатывает норм...
Такое ощущение, что для того чтобы в FF отработал правильно код надо поставить какую то задержку, типа какой - то sleep() :lol:
Может как то в FF не успевает код отработать.

Какие будут предложения???
// поиск ссылок по request
function link_search() {
	var request = parent.bottom.document.getElementById("req").value.toLowerCase();
	// удаление ненужных пробелов
	request = request.replace(/^\s+/, "");
	request = request.replace(/\s+$/, "");
	// имя файла и путь к нему
	// флаг удачного поиска, счетчик
	var name, path;
	var found = false;
	var count = 1;
	// создание обяекта для работы с xml
	var xmldoc;
	// code for IE
	if (window.ActiveXObject) xmldoc = new ActiveXObject("MSXML2.DOMDocument");
	// code for Mozilla, Firefox, Opera, etc.
	else if (document.implementation && document.implementation.createDocument) 
                     xmldoc = document.implementation.createDocument("","",null);
	
	// отрисовка документа
	parent.main.document.write('<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />\n');
	parent.main.document.write('<title>Search result</title>\n</head>\n<body>');
	parent.main.document.write('<div style="text-align: center; font-size:22px; font-family: Georgia, "Times New Roman", Times, serif;">Результат поиска:</div><br>');
	parent.main.document.write('<div style="margin-left:15px;">\n');
	// загрузка xml документа
	xmldoc.load("index.xml");

name = xmldoc.getElementsByTagName("name");
path = xmldoc.getElementsByTagName("path");

for (var i = 0; i < name.length; i++){
		value_name = name[i].firstChild.data.toLowerCase();
		value_path = path[i].firstChild.data.toLowerCase();
		
		if (value_name.search(request)!=-1) {
			found = true;
			parent.main.document.write('<b>' + count + '. </b><a href="' + value_path + '">' + value_name.toUpperCase() + '</a><br>\n');
			count++;
		}
	}
	if (!found) parent.main.document.write("По вашему запросу ничего не найдено.");
	parent.main.document.write('</div>\n');
	parent.main.document.write('</body>\n</html>');
	parent.main.document.close();
}

dr.dread 24.08.2012 16:46

В Опере XMLHttpRequest отключен по умолчанию, нужно его вкючить. Искать нужно в скрытых настройках. Ввести в адресной строке opera:config
дальше найти User Prefs и поставить галку для Allow File XMLHttpRequest. Потом не забыть сохранить.


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