Я только начинаю изучать javascript и ajax. У меня есть текстовое поле, которое при нажатии кнопки ввода отправляет запрос на сервер, и то, что возвращается, должно отображаться в том же текстовом поле. Хотя мне удалось установить соединение с сервером, я не могу заставить текстовое поле прокручиваться вниз после ответа. Это мой html-файл:
<!DOCTYPE html>
<html>
<script type="text/javascript" src="js/ajax.js"></script>
<body>
<textarea id="myDiv"></textarea>
<script type="text/javascript">
var terminal = document.getElementById("myDiv");
console.log(terminal);
getBrowserDimensions();
document.getElementById("myDiv").onkeydown = function(event){
var e = event || window.event;
if(e.keyCode == 13){
loadXMLDoc(terminal.value);
}
}
</script>
</body>
</html>
А это мой файл javascript:
function loadXMLDoc(sendString){
var xmlhttp;
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else{
xmlhttp = new ActiveXObject("Microsoft.XMLHHTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
terminal.value += xmlhttp.responseText+'\n';
}
}
xmlhttp.open("POST", "php/demo_get.php", true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(sendString);
terminal.scrollTop = terminal.scrollHeight;
console.log("1: " + terminal.scrollTop);
console.log("2: " + terminal.scrollHeight);
}
function getBrowserDimensions(){
var x = window.innerWidth;
var y = window.innerHeight;
var terminalWidth = Math.floor(x * 0.95);
var terminalHeight = Math.floor(y * 0.95);
terminal.value += "width: " + x + " height: " + y + " tWidth : " + terminalWidth + '\n';
terminal.style.width = terminalWidth + "px";
terminal.style.height = terminalHeight + "px";
terminal.style.resize = "none";
}
Я пробовал несколько подходов, которые можно найти в основном на этом сайте, например:
terminal.scrollTop = terminal.scrollHeight - terminal.clientHeight;
Но ничего не изменилось. Текстовое поле будет по-прежнему установлено на середину своей прокручиваемой высоты. Даже установка scrollTop на фиксированное число, например 9999, ничего не изменит. Я пробовал это в firefox и chrome. Я также не должен использовать jquery, поэтому, если какие-либо идеи о том, что я делаю неправильно, или предложения были бы очень признательны.
scrollTop = scrollHeight
- person Reinstate Monica Cellio   schedule 16.02.2014terminal.scrollTop = terminal.scrollHeight;
. Если это не работает, проблема связана с чем-то другим. - person Reinstate Monica Cellio   schedule 16.02.2014