10

次のコードを IE 8 で実行するとエラーが発生しますが、他のブラウザーでは発生しません。

'document.head' が null であるか、オブジェクトではありません

これが私のコードです:

  <!DOCTYPE html>
   <html>
   <head>
   <meta charset="utf-8" />
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
   <link rel="stylesheet" type="text/css" href="style.css" media="screen" />
   <script type="text/javascript" src="respond.min.js"></script>

    <script>
   function load() {
    document.getElementsByID("myFrame");
    }
   </script>
   </head> 
   <body>       

    <iframe src="http://instagram.com/p/bTlK6CRNcL/embed/" width="300" height="400" frameborder="0" scrolling="no" allowtransparency="true" id="myFrame" onload="load()"></iframe>

</body>
</html>
4

1 に答える 1

19

document.headIE8 がサポートしていない (9 より前のバージョンの IE がない) ため、失敗します。HTML5 の新機能です。代わりに、任意のブラウザーで次を使用できます。

var head = document.head || document.getElementsByTagName("head")[0];

が定義されている (使用可能)場合document.headは、短絡してすぐに使用します。定義されていない場合はdocument.getElementsByTagName、任意のブラウザーで検索されるパーツが使用されます。

コード全体でこの種のものを使用したくない場合を除きthis || that、安全であり、常に を使用するだけで十分document.getElementsByTagName("head")[0]です。


参考文献:

于 2013-07-29T18:34:46.637 に答える