如何在winforms中的WebBrowser控件中调用javascript?

问题描述 投票:8回答:3

我想像这样调用javascript函数'Goto':

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

该函数位于DefaultGeneral.aspx页面,我需要从WebBrowser控件中调用它

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

你有什么主意吗 ?谢谢。

javascript c# winforms webbrowser-control
3个回答
13
投票

由于您使用的是WebBrowser对象,我将假设这实际上是一个Windows窗体问题而不是asp.net问题。

您应该查看Web浏览器的InvokeScript函数。

假设您的网页具有以下功能:

没有参数:

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

您可能希望通过以下方式调用它:

this.webBrowser.InvokeScript("JavaScriptFunctionWithoutParameters");

带参数:

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

你会这样称呼它:

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

1
投票

在C#中你必须做这样的事情:

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

或这个:

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

看看这个doc ...

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

-2
投票

也许......把javascript:转到

<body onload="">

......在报价内。

© www.soinside.com 2019 - 2024. All rights reserved.