Partilhar via


WebBrowser.InvokeScript Method (String, array<String[])

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Executes the specified script function, which is defined in the currently loaded HTML, with the specified arguments.

Namespace:  System.Windows.Controls
Assembly:  System.Windows (in System.Windows.dll)

Syntax

'Declaration
Public Function InvokeScript ( _
    scriptName As String, _
    ParamArray args As String() _
) As Object
public Object InvokeScript(
    string scriptName,
    params string[] args
)

Parameters

  • scriptName
    Type: System.String
    The name of the script to execute.
  • args
    Type: array<System.String[]
    The arguments to pass to the script function.

Return Value

Type: System.Object
The result of the script invocation.

Exceptions

Exception Condition
SecurityException

The script target is at a cross-domain location.

Remarks

If the call to InvokeScript loads cross-domain content, you can no longer interact with that content with InvokeScript. For security reasons, you cannot call this method on script targets hosted inside an <iframe>.

Examples

In the following example, InvokeScript is called, which in turn calls the LoadSearch function in the following HTML. The HTML file must be hosted in the same domain as the Silverlight application.

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title></title>
    <script type="text/javascript" >
    function LoadSearch(searchString) {
        window.location = "https://www.bing.com/search?q=" + searchString
        window.external.notify("Search completed")
     }
     </script>
 </head>
<body>
Silverlight WebBrowser control.
</body>
</html>
Partial Public Class MainPage
    Inherits UserControl
    Public Sub New()
        InitializeComponent()
    End Sub

    Private Sub WB1_ScriptNotify(ByVal sender As Object, ByVal e As NotifyEventArgs)
        Button1.Content = e.Value

        Button1.IsEnabled = False
    End Sub

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
        Dim results As Object = WB1.InvokeScript("LoadSearch", New String() {"Silverlight"})
    End Sub
End Class
public partial class MainPage : UserControl
{
    public MainPage()
    {
        InitializeComponent();
    }

    void WB1_ScriptNotify(object sender, NotifyEventArgs e)
    {
        Button1.Content = e.Value;
        Button1.IsEnabled = false;

    }

    private void Button1_Click(object sender, RoutedEventArgs e)
    {
        object results = WB1.InvokeScript("LoadSearch", new string[] { "Silverlight" });
    }
}
<StackPanel x:Name="LayoutRoot" Height="358" Width="489" Background="LightBlue">
    <WebBrowser  x:Name="WB1" Source="https://localhost/HTMLPage1.htm" Height="272" Width="379" 
                 ScriptNotify="WB1_ScriptNotify" Margin="5" />
    <Button Width="200" x:Name="Button1" Content="Click to search!" Click="Button1_Click" />
</StackPanel>

Version Information

Silverlight

Supported in: 5, 4

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.