Sdílet prostřednictvím


WebBrowser.ObjectForScripting Vlastnost

Definice

Získá nebo nastaví objekt, ke kterému lze získat přístup skriptovacím kódem obsaženým ve webové stránce zobrazené v ovládacím WebBrowser prvku.

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

Hodnota vlastnosti

Objekt, který je zpřístupněn skriptovacímu kódu.

Atributy

Výjimky

Zadaná hodnota při nastavení této vlastnosti je instance nepřístupného typu.

nebo

Zadaná hodnota při nastavení této vlastnosti je instance typu, který není viditelný modelu COM. Další informace najdete na webu IsTypeVisibleFromCom(Type).

Příklady

Následující příklad kódu ukazuje, jak použít ObjectForScripting vlastnost. V příkladu ObjectForScripting je vlastnost nastavena na aktuální formulář.

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

Poznámky

Tato vlastnost slouží k povolení komunikace mezi webovou stránkou hostovaným ovládacím WebBrowser prvku a aplikací, která ovládací prvek obsahuje WebBrowser . Tato vlastnost umožňuje integrovat dynamický kód HTML (DHTML) s kódem klientské aplikace. Objekt určený pro tuto vlastnost je k dispozici pro skript webové stránky jako window.external objekt, což je integrovaný objekt DOM poskytnutý pro přístup k hostiteli.

Tuto vlastnost můžete nastavit na libovolný objekt, pro který chcete, aby byly pro skriptovací kód k dispozici jeho veřejné vlastnosti a metody. Třídu COM můžete zobrazit tak, že ji označíte ComVisibleAttributeznakem .

Chcete-li volat funkce definované na webové stránce z kódu klientské aplikace, použijte HtmlDocument.InvokeScript metodu objektu HtmlDocumentDocument , který můžete načíst z vlastnosti.

Platí pro

Viz také