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

Silverlight Discussion :

Silverlight et javascript


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 90
    Par défaut Silverlight et javascript
    Bonjour,

    J'expose mon problème,

    Je dispose d'une application Silverlight comportant une div, une frame. Dans cette frame une page html apparait. j'ai incoporé au projet une page Html qui comporte des fonctions javascript. Le problème c'est que je n'arrive pas à accéder aux fonctions javascript de cette page en cliquant sur un bouton.

    Si quelqu'un a la solution ce serait super gentil. (décidément le Silverlight n'est pas ma tasse de thé)

    D'avance merci

  2. #2
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Bonjour,

    C'est du HtmlBridge dont tu as besoin.
    Voici un lien qui devrait t'aider :

    http://msdn.microsoft.com/fr-fr/libr...(v=VS.95).aspx

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 90
    Par défaut
    Tout d'abord merci pour ta réponse.

    La fonction javascript ne se trouve pas sur la page html principale (celle créer avec la création du projet), mais sur une page que j'ai incorporé moi même.

    j'ai ce code ci en XAML

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <navigation:Page x:Class="SilverlightApplication5.Home" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
        xmlns:my="clr-namespace:SilverlightApplication5"
        mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"
        Title="Home"
        Style="{StaticResource PageStyle}">
     
        <Canvas x:Name="LayoutRoot">
            <Canvas.Background>
                <LinearGradientBrush>
                    <GradientStop Color="#FFD4D4D4" Offset="0"/>
                    <GradientStop Color="#FF3B3B3B" Offset="1"/>
                </LinearGradientBrush>
            </Canvas.Background>
     
            <StackPanel  Orientation="Horizontal">
                <TextBox x:Name="Adresse" Text="" 
                 Margin="10" Width="400" />
                <Button x:Name="Naviguer" Content="Go" Margin="10" 
                Click="Naviguer_Click"  />
                <Button x:Name="ChargerJavascript" Content="Lancer" Click="ChargerJavascript_Click"/>
     
            </StackPanel>
    <my:HtmlDisplay x:Name="html" Canvas.Top="50" 
                      Canvas.Left="10" Height="700" 
                      Width="800" />
     
        </Canvas>
    </navigation:Page>
    et dans ma classe HtmlDisplay je met cette ligne ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HtmlPage.window.Invoke("test");
    ce qui permet d'éxécuter la fonction javascript test qui se trouve dans la page principale, mais j'aimerais appeler la méthode test depuis une autre page html.


    Merci

  4. #4
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Je pense que tu devrais mettre un nom à ta frame. tu peux par exemple créer dans ta page principale une fonction javascript qui appelle la méthode de la frame.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // javascript
    function CallTest()
    {
    getElementByID("MaFrame").test();
    }
    Puis en Silverlight tu invoques CallTest.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 90
    Par défaut
    Ma frame à un nom dans mon HtmlDisplay.


    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    public class HtmlDisplay : ContentControl
        {
            private HtmlElement div;
            private HtmlElement iFrame;
            public HtmlDocument htmlDocument = HtmlPage.Document;
     
            public HtmlDisplay()
            {
                this.Loaded += new RoutedEventHandler(HtmlDisplay_Loaded);
            }
     
            void HtmlDisplay_Loaded(object sender, RoutedEventArgs e)
            {
     
     
                div = htmlDocument.CreateElement("div");
                div.Id = "monDiv";
                div.SetStyleAttribute("position", "absolute");
                div.SetStyleAttribute("height", this.Height.ToString() + "px");
                div.SetStyleAttribute("width", this.Width.ToString() + "px");
                GeneralTransform gt = this.TransformToVisual(Application.Current.RootVisual);
                Point position = gt.Transform(new Point(0, 0));
                div.SetStyleAttribute("left", position.X + "px");
                div.SetStyleAttribute("top", position.Y + "px");
                iFrame = htmlDocument.CreateElement("iframe");
                iFrame.Id = "monIFrame";
                iFrame.SetProperty("frameborder", "no");
                iFrame.SetStyleAttribute("height", this.Height.ToString() + "px");
                iFrame.SetStyleAttribute("width", this.Width.ToString() + "px");
                iFrame.SetStyleAttribute("position", "relative");
                div.AppendChild(iFrame);
                htmlDocument.Body.AppendChild(div);
                //htmlDocument.GetElementById("monIFrame").Invoke("test");
     
            }
    }

  6. #6
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Tu veux invoquer "Test" tout de suite après le chargement de la page ou à la demande ?

Discussions similaires

  1. [Silverlight OOB] Javascript appele fonction C#
    Par GeoffreyKr dans le forum Silverlight
    Réponses: 1
    Dernier message: 12/03/2013, 14h08
  2. Appeler méthode Silverlight depuis javascript
    Par Mozofeuk dans le forum Silverlight
    Réponses: 2
    Dernier message: 29/07/2009, 11h38
  3. Silverlight + Ajax (Javascript)
    Par cyberbobby dans le forum Silverlight
    Réponses: 8
    Dernier message: 23/05/2009, 09h57
  4. API Javascript + Silverlight
    Par Mozofeuk dans le forum Silverlight
    Réponses: 6
    Dernier message: 23/10/2008, 10h32

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