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