Оказывается, дело было в том, что я подгружал js раньше момента, где определял input. Когда поменял местами, всё стало хорошо:
<input id = "h" type = "text">
<script src = "popup.js"></script>
Странно, разве иначе работать не должно? Всегда что ли нужно подгружать js после html?