HtmlDocument.InvokeScript 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
執行定義於 HTML 頁面中的主動腳本函式。
多載
| 名稱 | Description |
|---|---|
| InvokeScript(String) |
執行定義於 HTML 頁面中的主動腳本函式。 |
| InvokeScript(String, Object[]) |
執行定義於 HTML 頁面中的主動腳本函式。 |
範例
以下程式碼範例是在網頁中執行腳本的內容。 這個程式碼範例要求你已經載入以下網頁。
<HTML>
<SCRIPT>
function test(name, address) {
window.alert("Name is " + name + "; address is " + address);
}
</SCRIPT>
<BODY>
</BODY>
</HTML>
private void InvokeTestMethod(String name, String address)
{
if (webBrowser1.Document != null)
{
Object[] objArray = new Object[2];
objArray[0] = (Object)name;
objArray[1] = (Object)address;
webBrowser1.Document.InvokeScript("test", objArray);
}
}
Private Sub InvokeTestMethod(ByVal Name As String, ByVal Address As String)
If (Not (WebBrowser1.Document Is Nothing)) Then
Dim ObjArr(2) As Object
ObjArr(0) = CObj(New String(Name))
ObjArr(1) = CObj(New String(Address))
WebBrowser1.Document.InvokeScript("test", ObjArr)
End If
End Sub
InvokeScript(String)
執行定義於 HTML 頁面中的主動腳本函式。
public:
System::Object ^ InvokeScript(System::String ^ scriptName);
public object InvokeScript(string scriptName);
public object? InvokeScript(string scriptName);
member this.InvokeScript : string -> obj
Public Function InvokeScript (scriptName As String) As Object
參數
- scriptName
- String
要調用的腳本方法名稱。
傳回
該物件由 Active Scripting 呼叫回傳。
範例
以下程式碼範例是在網頁中執行腳本的內容。 這個程式碼範例要求你的應用程式中有一個 WebBrowser 名為 WebBrowser1的 ,並且你已經載入了以下網頁。
<HTML>
<HEAD>
<TITLE>Invoke Script Sample</TITLE>
<SCRIPT>
function MyObject() {
this.Data = "Data for my private object.";
}
// Return a string.
function test() {
return("This is a test.");
}
// Return a JScript object.
function testJScriptObject() {
return(new(MyObject));
}
// Return a DOM element.
function testElement() {
return(div1);
}
</SCRIPT>
</HEAD>
<BODY>
<DIV id="div1">
</DIV>
</BODY>
</HTML>
private void InvokeScript()
{
if (webBrowser1.Document != null)
{
HtmlDocument doc = webBrowser1.Document;
String str = doc.InvokeScript("test").ToString() ;
Object jscriptObj = doc.InvokeScript("testJScriptObject");
Object domOb = doc.InvokeScript("testElement");
}
}
Private Sub InvokeScript()
If (WebBrowser1.Document IsNot Nothing) Then
With WebBrowser1.Document
Dim Str As String = .InvokeScript("test")
Dim JScriptObj As Object = .InvokeScript("testJScriptObject")
Dim DomObj As Object = .InvokeScript("testElement")
End With
End If
End Sub
備註
回 InvokeScript 傳物件的底層類型會有所不同。 若被呼叫的主動腳本函式回傳純量資料,如字串或整數,則會以字串形式回傳。 若回傳基於腳本的物件,例如使用 JScript 或 VBScript 運算 new 子建立的物件,則其型別 Object為 。 (你可以透過呼叫 GetType 並 使用 InvokeMember來呼叫這些物件。)若回傳 HTML DOM 元素,如 a DIV 或 TABLE,則為 型別 Object;但若您已為 MSHTML.DLL 新增專案參考,則會轉換為其特定的非管理 DOM 類型。
你可以呼叫使用者電腦上任何以任何主動腳本語言撰寫的函式,包括 JScript 和 VBScript。
如果使用者在 Internet Explorer 中明確關閉腳本執行,或目前網頁的安全設定不允許,InvokeScript 將不會有任何作用。
適用於
InvokeScript(String, Object[])
執行定義於 HTML 頁面中的主動腳本函式。
public:
System::Object ^ InvokeScript(System::String ^ scriptName, cli::array <System::Object ^> ^ args);
public object InvokeScript(string scriptName, object[] args);
public object? InvokeScript(string scriptName, object[]? args);
member this.InvokeScript : string * obj[] -> obj
Public Function InvokeScript (scriptName As String, args As Object()) As Object
參數
- scriptName
- String
要調用的腳本方法名稱。
- args
- Object[]
要傳遞給腳本方法的參數。
傳回
該物件由 Active Scripting 呼叫回傳。
範例
以下程式碼範例是在網頁中執行腳本的內容。 這個程式碼範例要求你的應用程式中有一個 WebBrowser 名為 WebBrowser1的 ,並且你已經載入了以下網頁。
<HTML>
<SCRIPT>
function test(name, address) {
window.alert("Name is " + name + "; address is " + address);
}
</SCRIPT>
<BODY>
</BODY>
</HTML>
private void InvokeTestMethod(String name, String address)
{
if (webBrowser1.Document != null)
{
Object[] objArray = new Object[2];
objArray[0] = (Object)name;
objArray[1] = (Object)address;
webBrowser1.Document.InvokeScript("test", objArray);
}
}
Private Sub InvokeTestMethod(ByVal Name As String, ByVal Address As String)
If (Not (WebBrowser1.Document Is Nothing)) Then
Dim ObjArr(2) As Object
ObjArr(0) = CObj(New String(Name))
ObjArr(1) = CObj(New String(Address))
WebBrowser1.Document.InvokeScript("test", ObjArr)
End If
End Sub
備註
回 InvokeScript 傳物件的底層類型會有所不同。 若被呼叫的主動腳本函式回傳純量資料,如字串或整數,則會以字串形式回傳。 若回傳基於腳本的物件,例如使用 JScript 或 VBScript 運算 new 子建立的物件,則其型別 Object為 。 (你可以透過呼叫 GetType 並 使用 InvokeMember來呼叫這些物件。)若回傳 HTML DOM 元素,如 a DIV 或 TABLE,則為 型別 Object;但若您已為 MSHTML.DLL 新增專案參考,則會轉換為其特定的非管理 DOM 類型。
你可以呼叫使用者機器上任何以任何主動腳本語言撰寫的函式,包括 JScript 和 VBScript。
如果使用者已明確關閉 Internet Explorer 中的腳本執行,或目前網頁的安全設定不允許,此方法將無效。