次のコード行により、IEで「JScriptオブジェクトが必要です」というエラーが発生します。
hideElements.apply(window, elements);
IEによると、「期待されるJScriptオブジェクト」はhideElements
、を参照します。これは、任意の数のHTMLオブジェクトを引数として受け取り、それらを非表示にする関数です。
具体的には、を呼び出してHTMLオブジェクトの配列を取得し、getElementsByTagName
この配列を引数のリストとして関数に渡しますhideElements
。その場合、JS関数apply()
はまさに私が必要としているものです。私は確かに別の方法でコードを書くことができることを知っていますが、これはFirefoxとChromeで完全に機能し、技術的に正しいので、IEがそこでスタックする理由を本当に知りたいです。
行が実行されると、次のように判断しました。
window
nullではなく、タイプWindow
;elements
nullではなく、タイプHTMLCollection
; とhideElements
は完全に機能するJS関数です(それ自体で完全に機能し、上記のコードが実行されると完全にロードされます)。