2

APIを使用してYouTubeビデオを読み込もうとしています。サンプルコードをコピペしました。しかし、互換モードがオンのときに Internet Explorer 8 でエラーが発生し、強制的に 8 モードにしたいと考えています。

これはエラーです:

Message: 'JSON' is undefined
Line: 33
Char: 136
Code: 0
URI: http://s.ytimg.com/yt/jsbin/www-embed_core_module-vflDULhso.js

これは、サンプル コード + 強制モード 8 を含む html です。

http://cdn.radicalislam.org/enriched/test.html

4

2 に答える 2

2

YouTube iframe API は、標準モードの IE8+ でのみ提供されるいくつかの機能に依存しています。

これらは、ここの「要件」に記載されています。

https://developers.google.com/youtube/iframe_api_reference

特に(あなたが言及したJSON依存関係に加えて)postMessage APIには要件があります-これはjavascriptライブラリでは提供できません。最終的に、互換モードの IE8 や、postMessage をサポートしていない他のブラウザーでは、YouTube iframe API を使用できません。

IE8 は標準モードの要件をサポートしていますが、互換モードにドロップすると動作が損なわれます。

あなたが投稿したリンクを見て、これを投稿して以来、標準モードを強制するためにDoctypeを追加したようです-それで問題は解決しましたか?

于 2012-09-17T12:00:49.850 に答える
1

ほとんどすべてのブラウザが現在サポートしているため、AFAIK JSONサポートはもはや問題ではないため、エラーは非常に驚くべきものです(http://caniuse.com/json)。ただし、あなたのケースでは JSON がサポートされていないようですので、json2. Modernizr をロードするには、次を使用します。

Modernizr.load({
  test: !!window.JSON && !!JSON.parse,
  nope: 'json2.js'
});

更新: Can I Use ページの下部にあるメモを見落としています。IE8 で JSON をサポートするに<!DOCTYPE html>は、HTML の上部に HTML5 doctype を使用する必要があります。

于 2012-09-15T09:48:40.493 に答える