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

Windows Forms Discussion :

[Gecko - Visual Studio] Ajouter une class C# à l'Objet "Window" de JavaScript: C# vers JavaScript


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Points : 8
    Points
    8
    Par défaut [Gecko - Visual Studio] Ajouter une class C# à l'Objet "Window" de JavaScript: C# vers JavaScript
    Salut Développez.net,
    Je souhaiterai ajouter à mon Objet JavaScript "WINDOW" une class C# pour obtenir une exécution JavaScript "window.[MonObjet]". Mais je ne suis qu'une débutante assoiffée de connaissance.

    Pour plus d'explication, pour ceux qui ont déjà utilisé Qt QwebKit, il y a "addToJavaScriptWindowObject()"

    Merci pour votre aide!!

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Un début de solution

    Du coté de l'appli C#, marquer la WinForm "ComVisible".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // metre dans le code de la form, la ligne suivante :
    [System.Runtime.InteropServices.ComVisible(true)] 
    // mettre dans le Load de la form, l'instruction suivante : 
    WebBrowser1.ObjectForScripting = this ;
    // définir une methode public 
    public void AfficheMsg(string msg)
    { 
       MessageBox.Show(msg); 
    }
    Appeler la méthode c# dans le javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.external.AfficheMsg('message JavaScript');"
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Merci @Graffito,

    Je viens de tester la soluce et voici ce que je constate :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     System.Runtime.InteropServices.ComVisible(true);
    a le [ComVisible] souligner en rouge comme pour dire que ça ne peut pas passer.

    Ensuite en lieu et place de "WebBrowser1", le moteur de rendu Gecko me fait utiliser "geckoWebBrowser1". Ce qui ne fais pas prendre en compte "[...].ObjectForScripting" dans mon code.

    Ainsi, Tonton, y a-t-il une adaptation pour Gecko.

    J'utilise GeckoFx 22.06b et xulrunner 22.0 dans Visual Studio 12.

    Please Help Me!!

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Webmaster
    Inscrit en
    Octobre 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Salut,
    Après quelques recherches je crois avoir trouvé une piste...
    Dans la source de GeckoFx, j'ai remarqué que quelques fonctions dans un fichier qui me permette de dire que: "c'est ici qu'il naissance tous".
    C'est dans ce fichier (Geckofx-Core/DOM/Html/GeckoDocuments.cs) que document.HEAD, document.BODY... naissent.
    Etant donnée que dans C# il faut toujours définir le type d'une variable avant usage, je voudrais savoir quel type serait approprié pour si je souhaite créer un Object bien-sur JavaScript : "document.csharpObject", avec lequel je pourrai utiliser une class C#.


    Explication:
    Pour "document.head"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public GeckoHeadElement Head
    		{
    			get { return (_domHtmlDocument == null) ? null : GeckoHtmlElement.Create<GeckoHeadElement>(_domHtmlDocument.GetHeadAttribute()); }
    		}
    Pour "document.csharpObject"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public [????] csharpObject{
                  get{return [???]; }
    }

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/09/2009, 18h22
  2. [visual studio] créer une classe en C++ utilisable en VB .net
    Par thune123 dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 08/02/2008, 15h39
  3. ajouter une classe dans un projet
    Par bonbino dans le forum C++Builder
    Réponses: 4
    Dernier message: 23/10/2006, 14h35
  4. Ajouter une class CSS a une nouvelle cellule
    Par Arfigado dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/09/2006, 10h08

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