HtmlDocument.InvokeScript 方法

定義

執行定義於 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)

來源:
HtmlDocument.cs
來源:
HtmlDocument.cs
來源:
HtmlDocument.cs
來源:
HtmlDocument.cs
來源:
HtmlDocument.cs

執行定義於 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 DIVTABLE,則為 型別 Object;但若您已為 MSHTML.DLL 新增專案參考,則會轉換為其特定的非管理 DOM 類型。

你可以呼叫使用者電腦上任何以任何主動腳本語言撰寫的函式,包括 JScript 和 VBScript。

如果使用者在 Internet Explorer 中明確關閉腳本執行,或目前網頁的安全設定不允許,InvokeScript 將不會有任何作用。

適用於

InvokeScript(String, Object[])

來源:
HtmlDocument.cs
來源:
HtmlDocument.cs
來源:
HtmlDocument.cs
來源:
HtmlDocument.cs
來源:
HtmlDocument.cs

執行定義於 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 DIVTABLE,則為 型別 Object;但若您已為 MSHTML.DLL 新增專案參考,則會轉換為其特定的非管理 DOM 類型。

你可以呼叫使用者機器上任何以任何主動腳本語言撰寫的函式,包括 JScript 和 VBScript。

如果使用者已明確關閉 Internet Explorer 中的腳本執行,或目前網頁的安全設定不允許,此方法將無效。

適用於