0


1

このjavascriptが機能しないのはなぜですか?

これは質問の続きです。

上記の問題は解決されました[pygorex1に感謝します)。 しかし、次のコードスニペットが機能しない理由を知りたいです。

if (window.addEventListener){
    window.addEventListener('load', addDateFormatInfo, false);
    window.addEventListener('load', loadNewElements, false);
} else if (window.attachEvent){
    window.attachEvent('onload', addDateFormatInfo);
    window.attachEvent('onload', loadNewElements);
}

function loadNewElements(){
    document.createElement("showDateFormat");
}

function addDateFormatInfo(){
    var dateFormatHolder = document.getElementsByTagName("showDateFormat");
    if ( dateFormatHolder ){
        for ( i = 0 ; i < dateFormatHolder.length; i++ ){
                dateFormatHolder[i].innerHTML = '(mm/dd/yyyy)';
        }
    }
}

ただし、FFで動作しているがIEでは動作していない場合 javascript [どのメソッドでもない]の場合、コードは[IEとFFの両方で]期待どおりに機能します。 それはなぜですか?

2 Answer


3


他のメソッドの前に* loadNewElements *を呼び出す必要があります。

動作しない場合は、次のように記述します。

if (window.addEventListener){
    window.addEventListener('load', addDateFormatInfo, false);
    //window.addEventListener('load', loadNewElements, false);    // Don't need this for non-IE browsers
} else if (window.attachEvent){
    loadNewElements(); // Will always be executed before the other one
    window.attachEvent('onload', addDateFormatInfo);
}


2


私はこれをやってみます:

if (window.addEventListener){
  window.addEventListener('load', function() {loadNewElements(); addDateFormatInfo()}, false);
} else if (window.attachEvent){
  window.attachEvent('onload', function() {loadNewElements(); addDateFormatInfo()});
}