0

onchange-Event を使用して、Web サイトの一部のサイズを自動的に変更したいと考えています。しかし、いつものように、解決すべき小さな問題がありました。コンソールに次のエラーが表示されます。

The property undefined or a null reference can not be retrieved"。

function Resize() {
    var winHeight = window.innerHeight;
    var winWidth = window.innerWidth;
    var startElements = document.getElementsByClassName('start');
    for (var i = 1; i <= startElements.length; i++) {
        document.startElements[i].attachEvent('onchange', function StartResize() {
        startElements[i].style.paddingLeft = winWidth * 0.1;
        startElements[i].style.paddingRight = winWidth * 0.1;
        });
    };
};

<body onload="Resize">

最後のこと。HTMLドキュメントのbodyタグの最後にすでにスクリプトタグを書き込んでいます。

4

1 に答える 1

1

から削除documentdocument.startElementsます。

あなたはおそらく を探していResize()ます。()関数を呼び出すのを忘れました。

<body onload="Resize()">

ただし、インライン JS (html の onload など) は決して良い方法ではありません。これらの結果のいくつかを確認してください:インライン JS が悪いのはなぜですか?

代わりに、次のように JavaScript を使用してイベント リスナーをアタッチする必要があります。

window.addEventListener('load', function() {
  //code here
});

コードを IE5-8 でのみ動作させたい場合を除き、addEventListenernotを使用する必要attachEventがあるため、addEventListener('change',

1また、ではなく でループを開始するつもりだったのだろうかと思います0。最初の要素は item になります0。ページにアイテムが 1 つしかない場合は、それをスキップして、存在しないアイテムから始めます。

したがって、次のことも試してください。

for (var i = 0;
于 2014-01-26T15:24:23.970 に答える