[закрыто][firefox+javascript]перерисовка страницы/элемента
Что за привычка всё усложнять? Напиши вместо
document.getElementById('foo').setAttribute('value','bar');
document.getElementById('foo').value='bar';
Вроде работает. Но возникает несколько вопросов:
1. Почему работает для тестовых примеров?
<html>
<head>
<title></title>
<script>
function clk{
document.getElementById('foo').setAttribute('value',document.getElementById('foo').getAttribute('value')=='foo' ? 'bar' : 'foo');
alert(document.getElementById('foo').getAttribute('value';
}
window.setTimeout("clk",10);
</script>
</head>
<body>
<input type="text" id="foo" value="foo" />
</body>
</html>
и
<html>
<head>
<title></title>
<script>
window.onclick = function(e){
document.getElementById('foo').setAttribute('value',document.getElementById('foo').getAttribute('value')=='foo' ? 'bar' : 'foo');
alert(document.getElementById('foo').getAttribute('value';
}
</script>
</head>
<body>
<input type="text" id="foo" value="foo" />
</body>
</html>
2. Почему в Опере работает и работало "иногда" в firefox?
Вопросы, видимо, риторические...
Работает до тех пор, пока ты не изменишь значение этого поля вручную.
Спасибо!
Оставить комментарий
pilot
Есть на странице элементМеняем ему Javascript'ом value:
При этом на HTML странице текст в элементе input не меняется (остается foo но DOM inspector (firefox'овый встроенный) показывает value='bar' для этого элемента. Alert'ы javascript'a тоже показывают что value='bar'.
Надо каким-то образом заставить firefox страницу (элемент?) перерисовать.
Замечания:
- firefox 1.0.7 или 0.10
- размер страницы большой. На маленьком примере все работает правильно(точнее, я меняю value по onclick - меняется, setTimeout'ом - меняется).
- в Opera все работает.
Я погуглил, и вот чего нашел (не знаю насколько это имеет отношение к проблеме): http://www.experts-exchange.com/Web/Web_Languages/JavaScript...
Только чтобы "посмотреть решение" надо платно зарегистрироваться
Вопросы:
Как заставить firefox перерисовать элемент?
Это баг firefox?
Может ли неправильно написанный скрипт на Javascript вызывать подобный эффект (т.е. допустим в моем скрипте есть ошибка, из-за которой элемент не перерисовывается)? (по-моему ошибок там нет, но кто знает...)