Externes JavaScript - Klicks darauf zählen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Externes JavaScript - Klicks darauf zählen

    hallo,

    ich habe auf meiner website ein externes javascript eingebunden, das eine box mit partnerinformationen zeigt (mit links, die auf die partnerwebsite führen).

    leider zählt der partner die anzahl der klicks nicht. deswegen wollte ich mich mal selbst heranwagen und eine halbwegs saubere lösung mit einem eigenem javascript bauen.

    meine überlegung dazu war:
    über die box ein unsichtbares div legen, der klick auf das div löst eine ajax-aktion aus, die den klick in meiner datenbank speichert.

    das problem ist nur, dass durch das div die links auf die partnerwebsite überlagert werden und somit nicht mehr ausgeführt werden können.

    kennt hier jemand einen trick oder gar einen anderen lösungsvorschlag?

    übrigens: an <body onclick="[...]"> und einer anschließenden auswertung, ob der mauszeiger zum zeitpunkt des klicks über der partnerbox war, habe ich auch schon gedacht, aber ist das nicht unter umständen zu ressourcenlastig?

    gruß,
    kmt56
  • test.html

    HTML-Quellcode

    1. <script>
    2. function count(){
    3. alert('einer mehr');
    4. }
    5. </script>
    6. <iframe src="adf.html" id="frame" name="frame"></iframe>
    7. <a href="#" onClick="this.href=frames['frame'].document.links[0];"><div style="position:absolute;top:0;left:0;height:40px; width:100px;border:1px solid red;" id="r"></div></a>

    adf.html

    HTML-Quellcode

    1. <a href="gaaaanz_tolle_setie.html">sdf</a>

    was hällste denn davon?
  • Probiers doch mal damit:

    Quellcode

    1. <script type="text/javascript">
    2. // <![CDATA[
    3. function initFrameClick() {
    4. document.getElementById('iframe').contentWindow.document.body.onclick = function() {
    5. //hier ajax-blubb
    6. }
    7. }
    8. // ]]>
    9. </script>
    10. <iframe id="iframe" src="test.lol.de" onload="initFrameClick()"></iframe>
    Alles anzeigen

    Am besten mal im iframe-source kucken, ob du eine id oder sowas von dem Link findest.

    Gruß
    Broken Sword
  • Argh, tut mir leid. Ich beschäftige mich idR nicht mit Frames, darum habe ich nicht gewusst, dass wegen der Gefahr des "cross site scripting" Browser das unterbinden, wenn die Seiten von verschiedenen Domains kommen.

    Wenn ich ne Idee habe, wie man das anders lösen kann, meld ich mich nochmal.

    Gruß
    Broken Sword
  • broken sword hat mir da ne idee gegeben^^
    warum machst du nicht aufs frame ein onclick event?nachteil daran wäre natürlich, dass jeder click gezählt wird, auch wenn der nicht auf einen link geht
    werden die liks im selben fenster geöffnet?
    dann könntest du mit eine globale variable mit 0 und 1 setzten
    wenn null, dann wurde nicht auch das frame geklickt, wenn 1 wurde geklickt
    beim verlassen der seite kannst du dann schaun ob geklickt wurde oder nicht und dann dein script ausführen oder nicht

    <body onUnload="geklickt_ja_oder_nein_wenn_ja_zaehlen()">...<body>

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von corema ()

  • corema, das mit dem onclick-event habe ich bereits versucht (siehe posting von broken sword).
    direkt über ein html-attribut zuweisen kann ich das onclick nicht, da das iframe von einem externen javascript eingebunden wird.

    gruß,
    kmt56
  • Du müßtest doch aber dem <iframe ...> per eigenem JS das Event onclick hinzufügen können, nach dem Aufbau. Dies könnte wieder Dein Ajax aufrufen.

    edit:

    okay,okay, hoffe ich auch :rolleyes: sorry -> bezieht sich auf das onclick aufs iframe - siehe nächstes Post von Broken Sword


    Wenn Du mehr posten würdest, könnte man sehen ob man noch woanders etwas injizieren kann.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von maulwurf_xxx ()

  • Wie schon am Anfang erwähnt gibt es kein onclick-Attribut bei iframe! Hoffe das war der letzte Post mit diesem Vorschlag *g

    edit: Da fällt mir etwas ein, was aber NUR funktioniert, wenn es nicht wichtig ist, dass der User den Link von der Seite angezeigt bekommt. Dann könntest du nämlich mit PHP oder AJAX die Seite, die im iFrame eingebunden wird, auslesen und das dann in ein Div (welches durchaus mit onclick bestückt werden kann) laden. Aber wie gesagt, manche Anbieter reagieren auf soetwas erlergisch (wenn die Werbeseite nur von einer IP geladen, aber der Link von anderen IPs geklickt wird)
    Probiers mal aus.

    Gruß
    Broken Sword

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Broken Sword ()

  • Also was definitiv geht ist einen Ad-Server zu benutzen. OpenX ist der Nachfolger von phpAds. Du kannst dort auch verschiedene Kampagnen, Größen, Rotationen und sonstwas einstellen...

    Das Tolle daran ist auch, dass Du fast beliebige Ad-Tags von Anbietern benutzen kannst, egal ob iFrame oder JS. Die Statistiken sind natürlich auch dabei und bieten sicher noch das ein oder andere Bonbon für Dich, das Du selber mühsam zusammenstellen müssest.

    Du bindest auf Deiner Seite statt direkt dem Ad-Tag oder Frame von Deinem Werbepartner einfach einen JS-Call von OpenX und ein JavaScript ein. Den Rest macht der Ad-Server.
    ... lg!