WebBrowser.ObjectForScripting Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Denetimde WebBrowser görüntülenen bir Web sayfasının içinde yer alan betik koduyla erişilebilen bir nesneyi alır veya ayarlar.
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
Özellik Değeri
Betik kodu için kullanılabilir hale getirilmekte olan nesne.
- Öznitelikler
Özel durumlar
Bu özellik ayarlanırken belirtilen değer genel olmayan bir türün örneğidir.
-veya-
Bu özellik ayarlanırken belirtilen değer, COM görünür olmayan bir tür örneğidir. Daha fazla bilgi için bkz. IsTypeVisibleFromCom(Type).
Örnekler
Aşağıdaki kod örneği özelliğinin ObjectForScripting nasıl kullanılacağını gösterir. Örnekte özelliği ObjectForScripting geçerli forma ayarlanmıştır.
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
Açıklamalar
Denetim tarafından WebBrowser barındırılan bir Web sayfası ile denetimi içeren WebBrowser uygulama arasında iletişimi etkinleştirmek için bu özelliği kullanın. Bu özellik, dinamik HTML (DHTML) kodunu istemci uygulama kodunuzla tümleştirmenize olanak tanır. Bu özellik için belirtilen nesne, ana bilgisayar erişimi için sağlanan yerleşik bir DOM nesnesi olan nesne olarak window.external
Web sayfası betiği tarafından kullanılabilir.
Bu özelliği, ortak özelliklerini ve yöntemlerini betik kodu için kullanılabilir olmasını istediğiniz herhangi bir COM görünür nesnesine ayarlayabilirsiniz. bir sınıfı ile işaretleyerek COM sınıfını ComVisibleAttributegörünür hale getirebilirsiniz.
Web sayfanızda tanımlanan işlevleri istemci uygulama kodunuzdan çağırmak için özelliğinden Document alabildiğiniz nesnenin HtmlDocument yöntemini kullanınHtmlDocument.InvokeScript.