Kann Javascript verwendet werden, um zu erkennen, eine Weiterleitung image SRC (in jedem gängigen browser)?
Ich vermute Nein, aber man weiß ja nie.
- Browser lädt
<img src="http://example.net/lolcat.png">
- example.net leitet
lolcat.png
zuhttp://static.example.net/bandwidth-exceeded.gif
Kann ich erkennen dieses?
Cross-browser ist nicht wichtig, nur auf der Suche nach einer option, die Arbeit wird in jedem 1 gängigen browser.
Bisher meine beste option ist, zu wissen, die Größe der Platzhalter-Bild, immer ein "vielleicht" mit Blick auf die Größe des Bildes onload (in Browsern, die Unterstützung onload-events in image-tags), und machen einen schnellen XHR-request Benachrichtigung des backend, die wir haben, eine vielleicht.
- Mmmmm... Interessante Frage. Wie über die
src
Eigentum in so einem Fall. Ist es nicht / sollte es nicht ändern? Ich kann das nicht testen, gerade jetzt. - ja.. die src-Eigenschaft gibt immer das, was eingestellt war ursprünglich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich habe mit den folgenden code:
in diesem Fall 0 zurück, da das Bild nicht vorhanden ist.
Auf link-text fand ich durchaus ein paar Eigenschaften, die sein könnte lohnt sich. Und wenn Sie das nicht wollen, könnte der Blick in jQuery und AJAX.
Bearbeiten:
- getestet auf firefox firebug
die Antwort auf Ihre Frage
Kann Javascript verwendet werden, um zu erkennen, eine Weiterleitung image SRC (in jedem gängigen browser)?
ist einfach wie du gesagt hast , Nein! da http-absolut keine option, für die Ermittlung der Umleitung. Dies ist ähnlich wie die Erkennung von url-Umleitung, die ist einfach eine Einschränkung für javascript.
Ich glaube nicht, dass es möglich zu erkennen, eine Weiterleitung mit JavaScript ohne einige Vorkenntnisse über die Bild-Eigenschaften. Die src-Eigenschaft des aktuellen DOM bleibt die gleiche, unabhängig davon, jede Umleitung, so dass die option aus.
Ich würde vorschlagen, dass Sie einen proxy-Skript auf Ihrem server fungiert als Vermittler zwischen. Zum Beispiel, Ihre image-tag würde so Aussehen (mit geeigneten URL-Codierung, natürlich):
Ihre proxy-script überprüfen der Header-Umleitungen vor dem servieren das Bild. Es ist nicht narrensicher, aber es könnte Ihnen zu ermöglichen, zum Beispiel cache das Bild auf den ersten laden, so dass Sie nicht bekommen, bandwidth limit Fehler aus der anderen Maschine.
Wenn es nur für Ihre eigenen Zwecke, Sie können möglicherweise verwenden Sie ein ActiveXObject im Internet Explorer prüfen Sie das Bild im detail. Kann nicht helfen, Sie auf die Besonderheiten obwohl.
Ich davon aus, dass Sie erlaubt, hotlink/cache das Bild mit dem Einverständnis der anderen Partei.
Was ist lolcat.png? Ich vermute, dass seine Handler und im wesentlichen nur dies tut:
<%
Antwort.Redirect("Bandbreite überschritten wird.gif?redirect=true")
%>
Wenn ja, habt Ihr versucht Helicon ' s ISAPI-URL Rewrite erstellen eines regex-Regel zum Anhängen eines query-string-Parameter an das Ende der URL des Bildes
Mit reinem javascript, es ist unmöglich. Aber mit Hilfe von server-side script (beispielsweise PHP), es kann leicht getan werden. Ich habe mir eine eigene, Kostenlose Dienstleistung an http://finalurl.web44.net, nützlich zu beheben, einfach die URL-Umleitung.
Um es zu verwenden, gehören
finalURL.js
innerhalb HEAD-Abschnitt d.h.Es zu benutzen, rufen Sie
finalURL( url_to_resolve );
Funktion d.h.Wenn Sie möchten, zu hosten des back-end-PHP-code selbst, überprüfen Sie folgende post:
Finden Sie umgeleitet img-Quelle