WebBrowser.InvokeScript 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
执行在当前加载的文档中定义的脚本函数。
重载
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 事件来检测文档何时完成加载。
如果未将足够的参数值传递给要调用的脚本,则未向其传递值的参数将具有未定义的值。 如果传递的参数值太多,则忽略多余的值。