5

</form>タグの後にスクリプトを配置するとリスナーは正常に動作<head>しますが、スクリプトをタグ内に配置すると動作しません。

私のサイトでは、<head>タグ内にしかスクリプトを配置できませんが、スクリプトをタグ内で実行するためにできることはあり<head>ますか?

この構成では、スクリプトは機能しません

<head>
<script type="text/javascript">
if(window.addEventListener) {
    document.getElementById('address').addEventListener('change', loadXMLDoc, false);
} else if (window.attachEvent){
    document.getElementById('address').attachEvent("onchange", loadXMLDoc);
}

function loadXMLDoc(){
   alert('worked');
}
</script>
</head>

<body>
<form>

<input id="address" name="address" type="text"/>
<input id="test" name="test" type="text"/>

 </form>
4

3 に答える 3

6

このように言います:

<head>
<script type="text/javascript">
window.onload= function () {
    if(window.addEventListener) {
        document.getElementById('address').addEventListener('change', loadXMLDoc, false);
    } else if (window.attachEvent){
        document.getElementById('address').attachEvent("onchange", loadXMLDoc);
    }

    function loadXMLDoc(){
       alert('worked');
    }
}
</script>
</head>
于 2012-08-29T19:39:31.223 に答える
1

コードをwindow.onload関数に入れます。

<head>
<script>
    window.onload = function() {
        if(window.addEventListener) {
            document.getElementById('address').addEventListener('change', loadXMLDoc, false);
        } else if (window.attachEvent){
            document.getElementById('address').attachEvent("onchange", loadXMLDoc);
        }

        function loadXMLDoc(){
            alert('worked');
        }
    }
</script>
<body>
    ...
</body>
于 2012-08-29T19:41:02.493 に答える
0

スクリプトをに配置すると<head>、取得する要素はdocument.getElementByIdまだ存在しません。イベントリスナーを追加する前に、ウィンドウがロードされるのを待ちます。

$(document).readyjQueryを使用するか、ロードされたリスナーをウィンドウに追加して、ウィンドウがロードされるのを待つ必要があります。

window.addEventListener('load',addListener,false);
function addListener() {
    //your code here
}
于 2012-08-29T19:39:09.373 に答える