Domanda

Abbiamo video di YouTube su un sito e desideriamo rilevare se è probabile che non saranno in grado di visualizzarli a causa della (probabilmente probabile) politica aziendale o altro.

Abbiamo due siti:

1) Flex / Flash 2) HTML

Penso che con Flex posso provare a scaricare http://youtube.com/crossdomain.xml e se è XML valido supponiamo che il sito sia disponibile

Ma con HTML non so come farlo. Non riesco nemmeno a pensare a un "bel trucco".

È stato utile?

Soluzione

Mi piace la soluzione di mancanza, ma sì, crea una race condition . Funzionerà e non creerà una competizione:

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";

Altri suggerimenti

Puoi caricare un'immagine da YouTube utilizzando JavaScript e verificarne le proprietà. La favicon è minuscola e ha un url coerente -

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
}

Penso che sia leggermente meglio del caricamento di javascript perché questo non tenterà di eseguire alcun codice, e mentre youtube potrebbe rinominare i propri file javascript o funzioni da quei file, è improbabile che rinominino mai la loro favicon.

Questo dovrebbe funzionare. Fondamentalmente, carica un file javascript di youtube.com, quindi controlla se esiste una funzione in quel file.

<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>

Oggi mi sono bloccato su questo e ho provato il test favicon ma non funzionava in IE. Stavo usando il Riferimento API YouTube Player per iframe Incorpora per incorporare i video di YouTube nel mio sito così quello che ho fatto è stato fare un controllo sul var del player definito poco prima di onYouTubeIFrameReady con un ritardo sulla chiamata javascript.

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

Sembra funzionare per me. Avevo bisogno del ritardo per farlo funzionare in IE.

Questo ha funzionato per me ... È anche il mio primo post, spero che aiuti anche qualcuno.

<?php

$v = file_get_contents("https://www.youtube.com/iframe_api");

//Tie counts to a variable
$test = substr_count($v, 'loading');

if ($test > 0)

{ ?>
    <iframe>YOUTUBE VIDEO GOES HERE</iframe>

    <?php
}

else

{

echo "<br/> no connection";

}

?>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top