свойство 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, время: 02:58. |