Прежде всего, вы принудительно вводите события и событие загрузки, которые могут привести к потенциальным кросс-браузерным проблемам. Если вы используете prototype.js, используйте его собственные методы, которые являются кросс-браузерными:
<script type="text/javascript">
document.observe("dom:loaded", function() {
.. your code here ..
});
</script>
Затем снова для правильной локализации и наблюдения за событиями клика вместо:
document.getElementById("id_gen").onclick = getsize;
Используйте что-то вроде:
$('id_gen').on('click', getsize(e).bindAsEventListener(this)); // for prototype 1.7 branch
Или:
$('id_gen').observe('click', getsize(e).bindAsEventListener(this)); // for prototype 1.6 branch
Также, передав туда переменную e
, ваша функция getsize()
будет иметь объект Event, так что вы можете остановить его естественное поведение (например, ведение к #):
function getsize(e) {
e.stop();
.. your code here ..
}
Кроме того, было бы лучше и гораздо менее раздутым, если вы заблокируете всю логику в классе и создадите для нее объект ... но это совсем другая история ...:)
prototype.js - это мощный инструмент, но требует некоторой осторожности.
Я бы посоветовал вам прочитать некоторые основы по фреймворку и следовать документации API позже:
http://prototypejs.org/learn/
http://api.prototypejs.org/