Проблема была в том, что функцию вы вызываете до того, как на странице появляются элементы. Если бы вы внимательно читали информационную справку о потоке - могли бы сами понять) :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<script language="JavaScript" type="text/javascript">
function updateInfo(file, target, interval){
if(typeof target !== 'object')
target = document.querySelector(target);
function stop(){
clearTimeout(timer);
xmlhttp.abort();
}
function update(){
xmlhttp.open('GET', file + '?' + Math.random(), true); // защита от кеширования, тут понятно
xmlhttp.send();
}
var xmlhttp = new XMLHttpRequest(), timer;
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState !== 4)
return;
if(xmlhttp.status !== 200)
console.log('updateInfo: ' + xmlhttp.statusText);
else
target.innerHTML = xmlhttp.responseText;
timer = setTimeout(update, interval);
}
update();
return {
start: update,
stop: stop
}
};
//тут ещё нет никакого table, оно ещё летит по сети, а код уже работает. Естесно нифига не найдено.
updateInfo('./temperatura.txt', 'table td:nth-child(2)', 1000); //запрос по (css) селектору: первая таблица, второй по порядку td, тут предполагалось, что вы сами укажете что надо)
</script>
<table width="246" border="1">
<tr>
<td width="105">parametr1</td>
<td width="125"> </td>
</tr>
<tr>
<td>parametr1</td>
<td> </td>
</tr>
</table>
</body>
</html>
Должно быть примерно так:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script>
function updateInfo(file, target, interval){
//тут проверяется что target - объект, если да то считаем, что это сам элемент куда надо выводить и оставляем как есть, иначе считаем что передан (css) селектор и запрашиваем элемент по оному
if(typeof target !== 'object')
target = document.querySelector(target);
function stop(){
clearTimeout(timer);
xmlhttp.abort();
}
function update(){
xmlhttp.open('GET', file + '?' + Math.random(), true);
xmlhttp.send();
}
var xmlhttp = new XMLHttpRequest(), timer;
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState !== 4)
return;
if(xmlhttp.status !== 200)
console.log('updateInfo: ' + xmlhttp.statusText);
else
target.innerHTML = xmlhttp.responseText;
timer = setTimeout(update, interval);
}
update();
return {
start: update,
stop: stop
}
};
window.onload = function(){
updateInfo('./temperatura.txt', '#textPlace2', 1000);
//или
updateInfo('./temperatura.txt', document.getElementById('textPlace2'), 1000);
}
</script>
</head>
<body>
<table width="246" border="1">
<tr>
<td width="105">parametr1</td>
<td width="125"> </td>
</tr>
<tr>
<td>parametr1</td>
<td > </td>
</tr>
</table>
<!-- или просто добавить в конец, так:
<script>
updateInfo('./temperatura.txt', '#textPlace2', 1000);
</script>
-->
</body>
</html>
И да, js - регистрозависимый, потому ваш OnLoad не работает.)