Ich serviere meine Website von mywebsite.com. Ich hasse Bilder auf Flickr, so dass alle Bilder im Browser des Benutzers über Anfragen an flickr geladen werden. Viele meiner Websitebesucher greifen aus Unternehmensnetzwerken auf mywebsite.com zu, die den Zugang zu flickr.com blockieren. Dies bedeutet, dass Benutzer anstelle der Bilder sehr lästige leere Platzhalter erhalten. Ich bekomme das gleiche Problem mit dem Facebook-Like-Button. Dies macht meine Website für solche Benutzer sehr unattraktiv.
Gibt es eine Möglichkeit, ein clientseitiges Skript auszuführen, das prüft, ob flickr.com, facebook.com usw. erreichbar sind. Wenn nicht, könnte ich das href-Attribut des zu ladenden Bildes aus einer anderen Quelle ändern oder durch ein Standardbild ersetzen, das erklärt, dass das Netzwerk den Zugriff blockiert. Ich könnte auch den Facebook-Like-Button entfernen.
Ich dachte, eine XML-HTTP-Anfrage würde den Trick bringen, aber dann würde ich übergreifende Domain-Probleme finden, denke ich. Ich schätze, ich könnte auch einen Proxy einrichten, um die Bilder zu bedienen, aber das möchte ich nicht; Die Idee davon ist, dass Flickr den Bandbreitentreffer nimmt.
TLDR: Wie stelle ich fest, ob flickr.com über den Browser eines Benutzers mit clientseitiger Technologie erreichbar ist.
Für Facebook können Sie einfach die Facebook JS API hinzufügen und dann testen, ob eines der exportierten Objekte / Funktionen existiert.
Es wäre besser, wenn Sie keine externen Hosts für Ihre Sachen verwenden würden. Wenn Sie ein CDN wollen, verwenden Sie besser ein echtes ...
Flickr und Facebook haben beide APIs, die JSONP unterstützen, also ist domainübergreifend kein Problem. Das ist eine Anfrage, die nur einige Dummy-Daten aus der API von flickr enthält.
%Vor%Sie können Fehlerhandler nicht zuverlässig auf einem jsonp-Request setzen, also zeigen Sie ein "loading" -Bild an, bis dieser Erfolgsrückruf aufgerufen wird. Setzen Sie eine Zeitüberschreitung, die eine Fehlermeldung anzeigt, wenn die Antwort nicht schnell genug zurückkommt.
Das funktioniert, aber Timeout muss gesetzt sein!
%Vor%ping.html sollte zurückgeben:
%Vor%Tags und Links javascript html proxy scripting