Udostępnij za pośrednictwem


HtmlDocument.InvokeScript Metoda

Definicja

Wykonuje funkcję Active Scripting zdefiniowaną na stronie HTML.

Przeciążenia

InvokeScript(String)

Wykonuje funkcję Active Scripting zdefiniowaną na stronie HTML.

InvokeScript(String, Object[])

Wykonuje funkcję Active Scripting zdefiniowaną na stronie HTML.

Przykłady

Poniższy przykład kodu wykonuje zawartość skryptu na stronie sieci Web. Przykładowy kod wymaga załadowania następującej strony sieci Web.

<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)

Wykonuje funkcję Active Scripting zdefiniowaną na stronie 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

Parametry

scriptName
String

Nazwa metody skryptu do wywołania.

Zwraca

Obiekt zwrócony przez wywołanie Aktywne skrypty.

Przykłady

Poniższy przykład kodu wykonuje zawartość skryptu na stronie sieci Web. Przykładowy kod wymaga, aby w WebBrowser aplikacji o nazwie WebBrowser1i załadowano następującą stronę sieci Web.

<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

Uwagi

Podstawowy typ obiektu zwróconego przez InvokeScript będzie się różnić. Jeśli wywołana funkcja Active Scripting zwraca dane skalarne, takie jak ciąg lub liczba całkowita, zostanie zwrócona jako ciąg. Jeśli zwraca obiekt oparty na skrypcie, taki jak obiekt utworzony przy użyciu operatora JScript lub VBScript new , będzie to typ Object. (Wywołania takich obiektów można wykonywać, wywołując GetType i używając metody InvokeMember.) Jeśli zwraca element DOM HTML, taki jak lub DIVTABLE, będzie to typ Object; jeśli dodano odwołanie do projektu do MSHTML.DLL, zostanie ono jednak rzutowane na określony niezarządzany typ DOM.

Możesz wywołać dowolną funkcję napisaną w dowolnym języku Active Scripting zainstalowanym na komputerze użytkownika, w tym JScript i VBScript.

Polecenie InvokeScript nie zrobi nic, jeśli użytkownik jawnie wyłączył wykonywanie skryptu w programie Internet Explorer lub jeśli bieżąca konfiguracja zabezpieczeń strony sieci Web nie zezwala na to.

Dotyczy

InvokeScript(String, Object[])

Wykonuje funkcję Active Scripting zdefiniowaną na stronie 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

Parametry

scriptName
String

Nazwa metody skryptu do wywołania.

args
Object[]

Argumenty, które mają być przekazywane do metody skryptu.

Zwraca

Obiekt zwrócony przez wywołanie Aktywne skrypty.

Przykłady

Poniższy przykład kodu wykonuje zawartość skryptu na stronie sieci Web. Przykładowy kod wymaga, aby w WebBrowser aplikacji o nazwie WebBrowser1i załadowano następującą stronę sieci Web.

<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

Uwagi

Podstawowy typ obiektu zwróconego przez InvokeScript będzie się różnić. Jeśli wywołana funkcja Active Scripting zwraca dane skalarne, takie jak ciąg lub liczba całkowita, zostanie zwrócona jako ciąg. Jeśli zwraca obiekt oparty na skrypcie, taki jak obiekt utworzony przy użyciu operatora JScript lub VBScript new , będzie to typ Object. (Wywołania takich obiektów można wykonywać, wywołując GetType i używając metody InvokeMember.) Jeśli zwraca element DOM HTML, taki jak lub DIVTABLE, będzie to typ Object; jeśli dodano odwołanie do projektu do MSHTML.DLL, zostanie ono jednak rzutowane na określony niezarządzany typ DOM.

Możesz wywołać dowolną funkcję napisaną w dowolnym języku Active Scripting zainstalowanym na maszynie użytkownika, w tym JScript i VBScript.

Ta metoda nie zrobi nic, jeśli użytkownik jawnie wyłączył wykonywanie skryptu w programie Internet Explorer lub jeśli bieżąca konfiguracja zabezpieczeń strony sieci Web nie zezwala na to.

Dotyczy