Скрипт не работает в 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(); } |
В Опере XMLHttpRequest отключен по умолчанию, нужно его вкючить. Искать нужно в скрытых настройках. Ввести в адресной строке opera:config
дальше найти User Prefs и поставить галку для Allow File XMLHttpRequest. Потом не забыть сохранить. |
Часовой пояс GMT +3, время: 12:12. |