Laden...

Textlink View-Counter für externe Seiten

Erstellt von ravel vor 13 Jahren Letzter Beitrag vor 13 Jahren 820 Views
R
ravel Themenstarter:in
169 Beiträge seit 2007
vor 13 Jahren
Textlink View-Counter für externe Seiten

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

3.170 Beiträge seit 2006
vor 13 Jahren

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

R
ravel Themenstarter:in
169 Beiträge seit 2007
vor 13 Jahren

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

3.170 Beiträge seit 2006
vor 13 Jahren

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