15

サイトに YouTube ビデオがあり、(ほとんどの場合) 会社のポリシーまたはその他の理由でそれらを表示できない可能性があるかどうかを検出したいと考えています。

次の 2 つのサイトがあります。

1) フレックス / フラッシュ 2) HTML

Flex を使用すると、 http: //youtube.com/crossdomain.xmlのダウンロードを試みることができ、それが有効な XML である場合、サイトが利用可能であると想定できます。

しかし、HTMLではどうすればいいのかわかりません。「ナイスハック」も思い浮かびません。

4

5 に答える 5

21

私はラッカーのソリューションが好きですが、そうです、それは競合状態を引き起こします。これは機能し、競合状態を作成しません:

var image = new Image();
image.onload = function(){
// The user can access youtube
};
image.onerror = function(){
// The user can't access youtube
};
image.src = "http://youtube.com/favicon.ico";
于 2009-11-26T16:29:11.340 に答える
14

javascriptを使用してYouTubeから画像を読み込み、そのプロパティを確認できます。ファビコンは小さく、一貫したURLを持っています-

var image = new Image();
image.src = "http://youtube.com/favicon.ico";
if (image.height > 0) {
    // The user can access youtube
} else {
    // The user can't access youtube
}

これはコードを実行しようとしないため、javascriptをロードするよりも少し良いと思います。また、youtubeはjavascriptファイルまたはそれらのファイルの関数の名前を変更する可能性がありますが、ファビコンの名前を変更する可能性はほとんどありません。

于 2008-11-13T02:10:30.050 に答える
8

これは機能するはずです。基本的には、youtube.com javascriptファイルをロードしてから、そのファイルに関数が存在するかどうかを確認します。

<html>

<head>
    <script src="http://www.youtube.com/js/account.js"></script>
    <script>
        function has_you_tube()
        {
            if(typeof addVideosToQuicklist == 'function')
            {
                return true;
            }
            else
            {
                return false;
            }

        }
    </script>

</head>
<body>
    <script>alert( "has_youtube: " + has_you_tube() ); </script>
</body>


</html>
于 2008-11-13T02:02:28.710 に答える
1

今日、これに行き詰まり、ファビコンのテストを試みましたが、IE では機能しませんでした。iframe Embeds の YouTube Player API リファレンスを使用してYouTube動画を自分のサイトに埋め込んでいたため、onYouTubeIFrameReady の直前に定義されたプレーヤー変数をチェックし、javascript 呼び出しを遅らせました。

<script> function YouTubeTester() {            
            if (player == undefined) {
                alert("youtube blocked");
            }
        }
</script>
<script>window.setTimeout("YouTubeTester()", 500);</script>

私にはうまくいくようです。IEで動作させるには遅延が必要でした。

于 2013-11-11T18:21:49.010 に答える