свойство innerHTML и Построчное считывание с файла
Помогите пожалуйста разобраться с кодом думаю что должно все работать но нет ничего не получается требуется вывести из файла построчно строки соответствующие критерию поиска вот код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Сайт</title> </head> <script type="text/javascript"> function inner() { var FSO = new ActiveXObject("Scripting.FileSystemObject"); var file = FSO.OpenTextFile("c:\\filesave.txt", 1, true); var poisk = document.getElementById("folk"); var spisok = document.getElementById("tab_find"); myArray= new Array(); var i=0; spisok.innerHTML += "<table>"; while (!file.AtEndOfStream) { myArray[i] = file.ReadLine(); if(poisk.value.test(myArray[i])==true) spisok.innerHTML += "<tr><td>" + myArray[i] + "<\/td><\/tr>"; i=i+1; } spisok.innerHTML += "<\/table>"; } </script> <style type="text/css"> </style> <body> <form name="mainform"> <div id="number"> <p>№ Трубы</p> <input type="text" name="folk"> <input type="button" name="button" value="Добавить данные" onClick="inner()"> </div> <div id="tab_find"> </div> |
попробуй так:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Сайт</title> <style type="text/css"> </style> </head> <body> <form name="mainform"> <div id="number"> <p>№ Трубы</p> <input type="text" id="folk"> <input type="button" name="button" value="Добавить данные" onClick="inner()"> </div> <div id="tab_find"></div> <script type="text/javascript"> function inner() { var FSO = new ActiveXObject("Scripting.FileSystemObject"); var file = FSO.OpenTextFile("c:\\filesave.txt", 1, true); var poisk = document.getElementById("folk"); var spisok = document.getElementById("tab_find"); var reg = new RegExp(poisk.value,'gi'); spisok.innerHTML += "<table>"; while (!file.AtEndOfStream) { var a = file.ReadLine(); if(reg.test(a)) spisok.innerHTML += "<tr><td>" + myArray[i] + "<\/td><\/tr>"; } spisok.innerHTML += "<\/table>"; } </script> </form> </body> </html> |
Цитата:
1. myArray на a забыл заменить if(reg.test(a)) spisok.innerHTML += "<tr><td>" + myArray[i] + "<\/td><\/tr>"; 2. Есть вопрос почему мой вариант не работает ? где ошибка ... 3. Почему он не в виде таблицы все это выдает теги все пропускает ... |
ага, забыл поменять на а :)
Не работал потому что у тебя не было элемента с id=folk :) Ещё poisk.value.test - это не катит, так как poisk.value - это строка, а тестить надо регулярным выражением. 3. Почему он не в виде таблицы все это выдает теги все пропускает ... У меня нет файла filesave.txt - посмотреть не на чем (самому писать лень) И ещё: кучу раз дёргать innerHTML очень плохо, я переделал: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title>Сайт</title> <style type="text/css"> </style> </head> <body> <form name="mainform"> <div id="number"> <p>№ Трубы</p> <input type="text" id="folk"> <input type="button" name="button" value="Добавить данные" onClick="inner()"> </div> <div id="tab_find"></div> <script type="text/javascript"> function inner() { var FSO = new ActiveXObject("Scripting.FileSystemObject"); var file = FSO.OpenTextFile("c:\\filesave.txt", 1, true); var poisk = document.getElementById("folk"); var spisok = document.getElementById("tab_find"); var reg = new RegExp(poisk.value,'gi'); var str = "<table>"; while (!file.AtEndOfStream) { var a = file.ReadLine(); if(reg.test(a)) str += "<tr><td>" + a + "</td></tr>"; } str += "</table>"; spisok.innerHTML = str; } </script> </form> </body> </html> |
Цитата:
|
потому что при изменении innerHTML браузер перерисовывает страницу, а это КАТАСТРОФИЧЕСКИ медленно.
Почему заработало со строкой: теперь таблица полностью собрана в строке и одним махом записана в иннерХТМЛ, а до этого писались куски, тэг таблицы н был закрыт и браузер не мог понять, что в конце концов всё будет хорошо :) |
Цитата:
|
не за что...
|
Часовой пояс GMT +3, время: 01:53. |