IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Détecte des clicks dans une page


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut Détecte des clicks dans une page
    Bonjour tout le monde.

    J'ai un vrai problème de conception sur ce coup là.

    Je dois fare une site qui affiche un "espace" utilisateur. Dans cette espace je doit faire apparaitre une "frame" (que je mets entre guillement parce que je ne suis pas sur que se soit cela qu'il faut utiliser) qui affihce un site distant.
    il faut que je puisse compter les clicks que l'utilisateur fait dans cette "frame" et l'afficher dans l'espace utilisateur et le tout toujours visible.

    Je ne sais pas quel contrôle utiliser pour réaliser cette opération.

    Auriez vous une diée ?

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Salut Zooffy,

    je ne comprends pas bien quel est le besoin dans ton cas, mais une chose est sure : tu ne pourras pas, par des moyens "normaux", contrôler ce qui se passe dans la frame.
    La frame est une page à part entière et la page qui l'héberge n'a pas accès à son contenu.

    Sauf à passer par de la bidouille js qui ne garantira rien, je ne vois pas très bien.

    Peux-tu détailler ton besoin ?

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Je crois que c'est possible avec jQuery (je crois seulement, vu que je ne l'ai jamais utilisé). En gros l'idée est de récupérer la frame dans le DOM, et de s'abonner à l'évènement click dessus

    cf. cette question sur StackOverflow:
    http://stackoverflow.com/questions/2...dy-doesnt-work

  4. #4
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Merci tomlev pour ton lien.
    Faut que j'y retourne plus en profondeur, c'est super compliqué à comprendre pour moi à cause de l'anglais dans un premier temps (mais je crois avoir catpé) et surtout à cause du JS que je ne maitrise pas du tout. Mais bon, je vais faire des efforts et explorer à fond cette possibilité.

    Pour détailler un peu plus mon besoins et c'est pour ça que j'avais mis "frame" entre guillemet, car peut-être un autre contrôle est plus approprié.

    Je ne souhaite pas connaitre TOUT ce qu'il se passe dans la "frame" (toujours entre guillemets) mais seulement les click.

    Je vais tenter une présentation plus générale :
    - sur mon site un utilisateur se connecte
    - dans son espace on lui propose un lien.
    - ce lien le dirige vers une page où il retrouve une partie de son espace et surtout un compteur de click et dans le reste de la page il voit un autre site. Là il faut trouver un contrôle qui affiche un autre site (frame, iframe, literal, je ne sais quoi d'autre)
    - cet utilisateur doit cliquer dans cet autre site pour activer son compteur, chaque click dans l'autre site lui donnera un de plus sur son compteur. Ensuite je fais des trucs (pas trop cochon) avec le compteur.

    Est ce que c'est plus clair comme ça ?

    Donc, Frame ou autre, je n'y suis pas attaché, mais un contrôle qui affiche un site et qui me retourne les clicks qui sont fait dedans. Au pire, si je n'ai que le premier click, ça me suffit. je veux juste être sûr que le gars à bien cliqué, c'est tout.

    Dans le même ordre d'idée j'ai vu un site qui fait des trucs pas possible sur ce genre de chose :
    http://www.pokcity.com/ ils ont un système pour avoir des "poks sponsorisés" et ils passent par sponsorpay (http://fr.sponsorpay.com/)
    Visiblement on rempli des formulaires, on regarde des vidéos, on clique des pub et sponsorpay arrive à détecter tout ça.
    Voilà, en gros ce que je voudrais faire, mais je commence par détecter un click, ne voyons pas trop gros.
    Merci pour votre aide.

  5. #5
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Je crois que je tiens une piste, mais mon nieau de javascript m'empêche de continuer.

    Avec ce code là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="test" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>
        <script type="text/javascript">
            function mafonc() {
                alert('mafonc');
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <ajax:ScriptManager ID="sm" runat="server"></ajax:ScriptManager>
        <div>
        Compteur
        <iframe id="iframe" src="http://www.google.fr" onload="mafonc();"></iframe>
     
        </div>    
        </form>
    </body>
    </html>
    Je fais apparaitre une msgBox à chaque changement de page dans la Iframe.
    Là où je sèche c'est que je ne sais pas quoi mettre dans mafonc pour déclencher une traitement serveur.

    Question subsidiaire : serait il possible de récupérer l'URL de la Iframe à chaque fois ?

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Zooffy,

    là tu détectes que ton iframe a été chargée côtée client. C'est bien, mais tu n'es pas rendu au clic
    Cela dit, le code proposé dans le lien de TomLev a l'air pas mal.

    Pour ce qui est de ton besoin de récupérer le clic côté serveur, regarde du côté de ClientScript.GetPostBackEventReference.

    Le principe est le suivant :
    - tu déclares un LinkButton visible=false sur ton aspx
    - tu t'abonnes à s'on évènement OnClick(sender As Object, e As EventArgs)
    (c'est dans cet event que tu feras ton traitement serveur après clic.)
    - tu écris un petit script js, à charger en début de page, qui va appeler le clic serveur du linkbutton caché.

    Un peu de code pour illustrer :
    ASPX :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:LinkButton ID="LB1" runat="server" Style="display: none;" OnClick="LB1_Click" ></asp:LinkButton>
    VB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub Page_Load(ByVal Sender As System.Object, ByVal e As System.EventArgs) 
     Me.InitScript()
    End Sub
     
    Private Sub InitScript()    
        Dim script as string = string.Format(" 
                function mafonc()
                {{
                    {2};
                }}",
    ClientScript.GetPostBackEventReference(LB1, ""))
    End Sub 
     
    Sub LB1_Click(sender As Object, e As EventArgs) 
             'Ici ton code après récupération du clic
    End Sub
    Bon, le code est à adapter car écrit en VB (je n'ai pas pratiqué depuis un moment) et pas vérifié.
    Mais le principe y est :
    - au chargement de ta page, tu charges ta fonction "maFonc"
    - cette fonction est appelée sur l'event client onload de ton iframe
    - dans cette fonction, on appelle explicitement une fonction doPostback depuis le linkbutton caché
    - ainsi, tu passeras dans son event Click côté serveur.

    Edit : si j'ai fais des erreurs dans mon code, je suis preneur de tes corrections

Discussions similaires

  1. Récupérer des info dans une page html
    Par DORBRITZ dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 06/03/2008, 11h13
  2. [RegEx] Récupérer des données dans une page Web
    Par Pragmateek dans le forum Langage
    Réponses: 8
    Dernier message: 24/05/2006, 19h44
  3. [des panneaux dans une page web] que choisir ?
    Par oursblanc dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 02/12/2005, 11h02
  4. Récupérer des données dans une page HTML
    Par newdelirium dans le forum Langage
    Réponses: 3
    Dernier message: 26/10/2005, 19h18
  5. Positionner des cellules dans une page
    Par BBe8127 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/10/2005, 10h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo