WebBrowser.ObjectForScripting Propriété

Définition

Obtient ou définit un objet accessible par du code de script contenu dans une page web affichée dans le contrôle WebBrowser.

public:
 property System::Object ^ ObjectForScripting { System::Object ^ get(); void set(System::Object ^ value); };
[System.ComponentModel.Browsable(false)]
public object ObjectForScripting { get; set; }
[System.ComponentModel.Browsable(false)]
public object? ObjectForScripting { get; set; }
[<System.ComponentModel.Browsable(false)>]
member this.ObjectForScripting : obj with get, set
Public Property ObjectForScripting As Object

Valeur de propriété

Objet rendu disponible au code de script.

Attributs

Exceptions

La valeur spécifiée lors de la définition de cette propriété est une instance d'un type non public.

- ou -

La valeur spécifiée lors de la définition de cette propriété est une instance d'un type qui n'est pas visible par COM. Pour plus d'informations, consultez IsTypeVisibleFromCom(Type).

Exemples

L’exemple de code suivant montre comment utiliser la ObjectForScripting propriété . Dans l’exemple, la ObjectForScripting propriété est définie sur le formulaire actuel.

using System;
using System.Windows.Forms;
using System.Security.Permissions;

[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public class Form1 : Form
{
    private WebBrowser webBrowser1 = new WebBrowser();
    private Button button1 = new Button();

    [STAThread]
    public static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new Form1());
    }

    public Form1()
    {
        button1.Text = "call script code from client code";
        button1.Dock = DockStyle.Top;
        button1.Click += new EventHandler(button1_Click);
        webBrowser1.Dock = DockStyle.Fill;
        Controls.Add(webBrowser1);
        Controls.Add(button1);
        Load += new EventHandler(Form1_Load);
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        webBrowser1.AllowWebBrowserDrop = false;
        webBrowser1.IsWebBrowserContextMenuEnabled = false;
        webBrowser1.WebBrowserShortcutsEnabled = false;
        webBrowser1.ObjectForScripting = this;
        // Uncomment the following line when you are finished debugging.
        //webBrowser1.ScriptErrorsSuppressed = true;

        webBrowser1.DocumentText =
            "<html><head><script>" +
            "function test(message) { alert(message); }" +
            "</script></head><body><button " +
            "onclick=\"window.external.Test('called from script code')\">" +
            "call client code from script code</button>" +
            "</body></html>";
    }

    public void Test(String message)
    {
        MessageBox.Show(message, "client code");
    }

    private void button1_Click(object sender, EventArgs e)
    {
        webBrowser1.Document.InvokeScript("test",
            new String[] { "called from client code" });
    }
}
Imports System.Windows.Forms
Imports System.Security.Permissions

<PermissionSet(SecurityAction.Demand, Name:="FullTrust")> _
<System.Runtime.InteropServices.ComVisibleAttribute(True)> _
Public Class Form1
    Inherits Form

    Private webBrowser1 As New WebBrowser()
    Private WithEvents button1 As New Button()

    <STAThread()> _
    Public Shared Sub Main()
        Application.EnableVisualStyles()
        Application.Run(New Form1())
    End Sub

    Public Sub New()
        button1.Text = "call script code from client code"
        button1.Dock = DockStyle.Top
        webBrowser1.Dock = DockStyle.Fill
        Controls.Add(webBrowser1)
        Controls.Add(button1)
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _
        Handles Me.Load

        webBrowser1.AllowWebBrowserDrop = False
        webBrowser1.IsWebBrowserContextMenuEnabled = False
        webBrowser1.WebBrowserShortcutsEnabled = False
        webBrowser1.ObjectForScripting = Me
        ' Uncomment the following line when you are finished debugging.
        'webBrowser1.ScriptErrorsSuppressed = True

        webBrowser1.DocumentText = _
            "<html><head><script>" & _
            "function test(message) { alert(message); }" & _
            "</script></head><body><button " & _
            "onclick=""window.external.Test('called from script code')"" > " & _
            "call client code from script code</button>" & _
            "</body></html>"
    End Sub

    Public Sub Test(ByVal message As String)
        MessageBox.Show(message, "client code")
    End Sub

    Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles button1.Click

        webBrowser1.Document.InvokeScript("test", _
            New String() {"called from client code"})

    End Sub

End Class

Remarques

Utilisez cette propriété pour activer la communication entre une page Web hébergée par le WebBrowser contrôle et l’application qui contient le WebBrowser contrôle. Cette propriété vous permet d’intégrer du code HTML dynamique (DHTML) à votre code d’application cliente. L’objet spécifié pour cette propriété est disponible pour le window.external script de page Web en tant qu’objet, qui est un objet DOM intégré fourni pour l’accès à l’hôte.

Vous pouvez définir cette propriété sur n’importe quel objet visible par COM pour lequel vous souhaitez que ses propriétés publiques et méthodes soient disponibles pour le code de script. Vous pouvez rendre une classe COM visible en la marquant avec le ComVisibleAttribute.

Pour appeler des fonctions définies dans votre page Web à partir du code de votre application cliente, utilisez la HtmlDocument.InvokeScript méthode de l’objet HtmlDocument que vous pouvez récupérer à partir de la Document propriété .

S’applique à

Voir aussi