WebBrowser.InvokeScript 方法

定义

执行在当前加载的文档中定义的脚本函数。

重载

InvokeScript(String)

执行当前加载的文档所实现的脚本函数。

InvokeScript(String, Object[])

执行在当前加载的文档中定义的脚本函数。

InvokeScript(String)

执行当前加载的文档所实现的脚本函数。

public:
 System::Object ^ InvokeScript(System::String ^ scriptName);
public object InvokeScript (string scriptName);
member this.InvokeScript : string -> obj
Public Function InvokeScript (scriptName As String) As Object

参数

scriptName
String

要执行的脚本函数的名称。

返回

活动脚本调用所返回的对象。

例外

WebBrowser 实例不再有效。

未能检索到对基础本机 WebBrowser 的引用。

脚本函数不存在。

示例

以下示例演示如何使用 InvokeScript(String)从 WPF 应用程序调用文档中的脚本函数。 在此示例中,脚本函数没有参数。

下面是实现将从 WPF 调用的脚本函数的 HTML 文档。

<html>  
    <head>  
        <script type="text/javascript">  
            // Function Without Parameters  
            function JavaScriptFunctionWithoutParameters()    
            {  
              outputID.innerHTML = "JavaScript function called!";  
            }  
        </script>  
    </head>  
    <body>  
    <div id="outputID" style="color:Red; font-size:16">  
        Hello from HTML document with script!  
    </div>  
    </body>  
</html>  

下面显示了在 HTML 文档中调用脚本函数的 WPF 实现。

private void callScriptFunctionNoParamButton_Click(object sender, RoutedEventArgs e)  
{  
  // Make sure the HTML document has loaded before attempting to  
  // invoke script of the document page. You could set loadCompleted  
  // to true when the LoadCompleted event on the WebBrowser fires.  
  if (this.loadCompleted)  
  {  
    try  
    {  
      this.webBrowser.InvokeScript("JavaScriptFunctionWithoutParameters");  
    }  
    catch (Exception ex)  
    {  
      string msg = "Could not call script: " +  
                   ex.Message +  
                  "\n\nPlease click the 'Load HTML Document with Script' button to load.";  
      MessageBox.Show(msg);  
    }  
  }  
}  

注解

InvokeScript(String) 不应在实现它的文档完成加载之前调用 。 可以通过处理 LoadCompleted 事件来检测文档何时完成加载。

适用于

InvokeScript(String, Object[])

执行在当前加载的文档中定义的脚本函数。

public:
 System::Object ^ InvokeScript(System::String ^ scriptName, ... cli::array <System::Object ^> ^ args);
[System.Security.SecurityCritical]
public object InvokeScript (string scriptName, params object[] args);
public object InvokeScript (string scriptName, params object[] args);
[<System.Security.SecurityCritical>]
member this.InvokeScript : string * obj[] -> obj
member this.InvokeScript : string * obj[] -> obj
Public Function InvokeScript (scriptName As String, ParamArray args As Object()) As Object

参数

scriptName
String

要执行的脚本函数的名称。

args
Object[]

要传递到脚本函数的参数。

返回

活动脚本调用所返回的对象。

属性

例外

WebBrowser 实例不再有效。

未能检索到对基础本机 WebBrowser 的引用。

脚本函数不存在。

示例

以下示例演示如何使用 InvokeScript(String, Object[])从应用程序调用文档中的脚本函数。 在此示例中,脚本函数需要参数。

下面是实现将从 WPF 调用的脚本函数的文档。

<html>  
    <head>  
        <script type="text/javascript">  
            // Function Without Parameters  
            function JavaScriptFunctionWithoutParameters()    
            {  
              outputID.innerHTML = "JavaScript function 'called: " + message + ".";  
            }  
        </script>  
    </head>  
    <body>  
    <div id="outputID" style="color:Red; font-size:16">  
        Hello from HTML document with script!  
    </div>  
    </body>  
</html>  

下面显示了在 HTML 文档中调用脚本函数的 WPF 实现。

private void callScriptFunctionNoParamButton_Click(object sender, RoutedEventArgs e)  
{  
  // Make sure the HTML document has loaded before attempting to  
  // invoke script of the document page. You could set loadCompleted  
  // to true when the LoadCompleted event on the WebBrowser fires.  
  if (this.loadCompleted)  
  {  
    try  
    {  
      this.webBrowser.InvokeScript("JavaScriptFunctionWithoutParameters", this.messageTextBox.Text);  
    }  
    catch (Exception ex)  
    {  
      string msg = "Could not call script: " +  
                   ex.Message +  
                  "\n\nPlease click the 'Load HTML Document with Script' button to load.";  
      MessageBox.Show(msg);  
    }  
  }  
}  

注解

InvokeScript(String, Object[]) 不应在实现它的文档完成加载之前调用 。 可以通过处理 LoadCompleted 事件来检测文档何时完成加载。

如果未将足够的参数值传递给要调用的脚本,则未向其传递值的参数将具有未定义的值。 如果传递的参数值太多,则忽略多余的值。

适用于