HtmlDocument.InvokeScript 方法

定義

執行定義在 HTML 網頁中的 Active Scripting 函式。

多載

InvokeScript(String)

執行定義在 HTML 網頁中的 Active Scripting 函式。

InvokeScript(String, Object[])

執行定義在 HTML 網頁中的 Active Scripting 函式。

範例

下列程式碼範例會在網頁中執行腳本的內容。 程式碼範例會要求您已載入下列網頁。

<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 網頁中的 Active Scripting 函式。

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 呼叫所傳回的物件。

範例

下列程式碼範例會在網頁中執行腳本的內容。 程式碼範例會要求您在名為 WebBrowser1 的應用程式中擁有 WebBrowser ,而且您已載入下列網頁。

<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 傳回之物件的基礎類型會有所不同。 如果呼叫的 Active Scripting 函式傳回純量資料,例如字串或整數,則會以字串的形式傳回。 如果它會傳回以腳本為基礎的物件,例如使用 JScript 或 VBScript new 運算子建立的物件,則其類型為 Object 。 (您可以藉由呼叫 GetType 和使用 InvokeMember .) 呼叫這類物件,如果它傳回 HTML DOM 元素,例如 DIVTABLE ,則其類型 Object 為 ;不過,如果您已將專案參考新增至MSHTML.DLL,則會轉換成其特定的 Unmanaged DOM 類型。

您可以呼叫以使用者電腦上安裝的任何 Active Scripting 語言撰寫的任何函式,包括 JScript 和 VBScript。

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

適用於

InvokeScript(String, Object[])

執行定義在 HTML 網頁中的 Active Scripting 函式。

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 呼叫所傳回的物件。

範例

下列程式碼範例會在網頁中執行腳本的內容。 程式碼範例會要求您在名為 WebBrowser1 的應用程式中擁有 WebBrowser ,而且您已載入下列網頁。

<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 傳回之物件的基礎類型會有所不同。 如果呼叫的 Active Scripting 函式傳回純量資料,例如字串或整數,則會以字串的形式傳回。 如果它會傳回以腳本為基礎的物件,例如使用 JScript 或 VBScript new 運算子建立的物件,則其類型為 Object 。 (您可以藉由呼叫 GetType 和使用 InvokeMember .) 呼叫這類物件,如果它傳回 HTML DOM 元素,例如 DIVTABLE ,則其類型 Object 為 ;不過,如果您已將專案參考新增至MSHTML.DLL,則會轉換成其特定的 Unmanaged DOM 類型。

您可以呼叫以使用者電腦上安裝的任何 Active Scripting 語言撰寫的任何函式,包括 JScript 和 VBScript。

如果使用者已在 Internet Explorer 中明確關閉腳本執行,或網頁目前的安全性設定不允許它,這個方法就不會執行任何動作。

適用於