Hi,
ich versuche mich grade daran herauszufinden, wie oft ein Link auf einer externen Seite von Besucher "gesehen" wurde. Leider bisher ohne Erfolg.
Ich gehe dabei so vor:
Ich habe ein Javascript auf der externen Seite, dass als Script-Source meine aspx-Seite enthält. Beim Aufruf des Scriptes wird auch tatsächlich das Page_Load-Event meiner aspx-Seite aufgerufen.
<html><script language="JavaScript" src="http://localhost:49391/Default.aspx?id=123"></script></html>
Nun möchte ich aber gerne noch von meiner aspx-Seite den Linktext an die externe Seite geben. Ich habe also aus der Default.aspx alles entfernt und nur im Page_Load-Event ein
Response.Write("Hallo " + Request.QueryString["id"]);
eingefügt.
Wenn ich jetzt die externe Seite aufrufe, erwarte ich eigentlich, dass der Inhalt "Hallo 123" ausgegeben wird. Stattdessen bekomme ich eine weiße Seite.
Wo ist mein Fehler?
Danke und Gruß
ravel
Hallo,
Wenn ich jetzt die externe Seite aufrufe, erwarte ich eigentlich, dass der Inhalt "Hallo 123" ausgegeben wird. Stattdessen bekomme ich eine weiße Seite. Das versteht sich wohl von selbst. Du gibst Deine Seite ja als Source in einem Scripttag an, wieso sollte das also dargestellt werden?
Nun möchte ich aber gerne noch von meiner aspx-Seite den Linktext an die externe Seite geben. So einfach wird das nicht klappen. Du musst dann schon ein Javascript runterschicken, das den Link auch in die Seite einbaut. Oder wie stellst Du DIr das sonst vor?
Zu guter letzt schau Dir mal diesen Artikel von Peter Bucher an, eine Page ist für diesen Zweck nicht gemacht.
Den Content-Type müsstest Du, wenn Du ein Script runterschickst, auf "text/javascript" setzen.
Allerdings finde ich die gesamte Vorgehensweise etwas seltsam... nur weil Du beim Laden der externen Seite den Link von Deiner eigenen Seite runterschickst, wird dieser ja nicht eher gesehen als wenn Du das nicht tust, sondern einfach nur ein Script einbaust das über AJAX serverseitig einen Zähler erhöht.
Oder ändert sich diser Link immer?
Gruß, MarsStein
Edit: Vielleicht sachst Du auch einfach nur einen <iframe src="..."> statt des <script>
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Hallo MarsStein,
danke für die schnelle Antwort.
Der Linktext sowie der Link ändert sich immer. Es soll im Prinzip ein Linktausch werden bei dem die User ein Script auf Ihre Website einbauen. Es soll dann ermittelt werden wie oft der Link angezeigt und angeklickt wurde. Letzteres ist kein Problem nur hänge ich immer noch dabei fest, Werte zurück an die externe Seite zu übermitteln, trotz Response.ContentType = "text/javascript"; wird immer nur eine leere Seite angezeigt.
Brauch ich nun wirklich einen eigenen HttpHandler? Ich verstehe nicht ganz, dass mein Beispiel nicht klappt. Die Page_Load-Funktion wird ja korrekt aufgerufen aber der Response.Write-Code landet nicht auf der externen Seite.
Sorry, wenn ich mich doof anstelle.
Gruß
ravel
Hallo,
trotz Response.ContentType = "text/javascript"; wird immer nur eine leere Seite angezeigt.
Den Grund dafür habe ich bereits genannt. Nochmal deutlicher: der Browser erwartet einen Javascript-Code, weil Du den URL in ein <script>-Tag reingeschrieben hast. Und Javascript-Quelltext wird nun mal nicht vom Browser angezeigt.
Und darum bringt es auch nix einfach den Link als Text zu verschicken.
Brauch ich nun wirklich einen eigenen HttpHandler?
Wenn Du Dein Vorhaben so verfolgen willst, wie beschrieben, musst Du ein dynamisch generiertes Javascript ausliefern. Dafür eignet sich ein HttpHandler viel besser als eine Page.
Ich empehle Dir dringend, Dir zur Webentwicklung noch einige Grundlagen anzueignen, denn evtl. abgesehen vom HttpHandler sind das welche.
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca