2014-12-02 16 views
6

Tôi muốn gọi hàm javascript 'Chuyển' như thế này:Làm thế nào để gọi javascript bên trong một điều khiển WebBrowser trong winforms?

javascript:Goto('DM_NEW_OBJECT.ASPX?DM_CAT_ID=2063&DM_PARENT_ID=2217&INPUTSELECTION=&DM_OBJECT_ID=0&PACK_ID=0&CASE_ID=0&mode=0&SITE=Default'); 

chức năng nằm ở trang DefaultGeneral.aspx, và tôi cần phải gọi nó từ bên trong một điều khiển WebBrowser

webBrowser1.Navigate("http://mySite/DefaultGeneral.aspx"); 

Đỗ bạn có bất kỳ ý tưởng? Cảm ơn bạn.

Trả lời

8

Vì bạn đang sử dụng đối tượng WebBrowser, tôi sẽ giả định rằng đây thực sự là câu hỏi biểu mẫu Windows chứ không phải là câu hỏi asp.net.

Bạn nên xem chức năng InvokeScript của trình duyệt web.

Hãy nói rằng trang web của bạn có chức năng sau:

KHÔNG THÔNG SỐ:

<script type="text/javascript"> 
    // Function Without Parameters 
    function JavaScriptFunctionWithoutParameters() { 
     outputID.innerHTML = "JavaScript function called!"; 
    } 
</script> 

Bạn sẽ muốn gọi nó theo cách sau:

this.webBrowser.InvokeScript("JavaScriptFunctionWithoutParameters"); 

với các thông số:

<script type="text/javascript"> 
    // Function With Parameters 
    function Goto(someParameter) { 
     outputID.innerHTML = someParameter; 
    } 
</script> 

Bạn sẽ gọi nó là như thế này:

object[] param = new object[1]; 
param [0] = "DM_NEW_OBJECT.ASPX?DM_CAT_ID=2063&amp;DM_PARENT_ID=2217&amp;INPUTSELECTION=&amp;DM_OBJECT_ID=0&amp;PACK_ID=0&amp;CASE_ID=0&amp;mode=0&amp;SITE=Default"; 
this.webBrowser1.Document.InvokeScript("Goto", param); 
0

Trong C# bạn phải làm một cái gì đó như thế này:

Page.ClientScript.RegisterStartupScript(this.GetType(),"CallMyFunction","MyFunction()",true); 

Hoặc này:

ClientScript.RegisterStartupScript(GetType(),"hwa","alert('Hello World');",true); 

Check-out doc này ...

http://msdn.microsoft.com/en-us/library/system.web.ui.page.clientscript(v=vs.110).aspx 
-2

... Có lẽ đặt javascript: Goto vào số

<body onload="">

... bên trong dấu ngoặc kép.

Các vấn đề liên quan