Frage

Wir haben YouTube-Videos auf einer Website und möchten erkennen, ob es wahrscheinlich ist, dass sie nicht in der Lage sein wird, sie wegen (meist wahrscheinlich) Unternehmenspolitik zu betrachten oder auf andere Weise.

Wir haben zwei Seiten:

1) Flex / Flash 2) HTML

Ich denke, mit Flex kann ich versuchen, herunterladen http://youtube.com/crossdomain.xml und wenn es gültige XML ist nehmen die Website verfügbar ist

Aber mit HTML Ich weiß nicht, wie es zu tun. Ich kann nicht einmal denken Sie an ein ‚nice Hack‘.

War es hilfreich?

Lösung

Ich mag lacker-Lösung, aber ja, erstellt es einen Race-Bedingung . Dies funktioniert und wird kein Rennen contition erstellen:

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

Andere Tipps

Sie können ein Bild von YouTube mit Hilfe von Javascript laden und seine Eigenschaften überprüfen. Das Favicon ist klein und hat eine konsistente 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
}

Ich denke, das ist etwas besser als Javascript Laden, weil diese keinen Code ausführen wird versuchen, und während youtube ihre Javascript-Dateien umbenennen könnte, oder Funktionen aus diesen Dateien, sie sind unwahrscheinlich, dass jemals ihre Favicon umbenennen.

Das sollte funktionieren. Grundsätzlich lädt es eine youtube.com JavaScript-Datei, überprüft dann, ob eine Funktion in der Datei vorhanden ist.

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

habe ich auf diesem heute steckt und versuchte, den Favicon-Test, aber es ist nicht in IE arbeiten. Ich war mit dem YouTube-Player-API-Referenz für Iframe-Einbettungen YouTube-Videos in meiner Website einbinden, so was ich tat, ist eine Überprüfung der Spieler var kurz vor dem onYouTubeIFrameReady mit einer Verzögerung auf dem JavaScript-Aufruf definiert durchführen.

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

Es scheint, für mich zu arbeiten. Ich brauchte die Verzögerung, um es in IE zu arbeiten.

Das funktionierte für mich ... Es ist auch mein erster Beitrag, hoffen, dass es auch jemand hilft.

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

}

?>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top