精华内容
下载资源
问答
  • C# webbrowser控件执行js脚本源码

    热门讨论 2009-10-13 18:23:02
    找了好久才找到的,不容易啊。呵呵 找了好久才找到的,不容易啊。呵呵 找了好久才找到的,不容易啊。呵呵 找了好久才找到的,不容易啊。呵呵 找了好久才找到的,不容易啊。呵呵
  • 由于visual studio2005 中WebBrowser控件已经实现了IDocHostUIHandler,所以 只要把应用程序属性类的 "com可见"选上. 再给 this.webBrowser1.ObjectForScripting = this; 赋值就行了 InvokeScript方式: 另外:...
  • //方法1 HtmlElement element2 = webQzone.Document.CreateElement("script"); element2.SetAttribute("type", "text/javascript"); element2.SetAttribute("text",

                    //方法1
                    HtmlElement element2 = webQzone.Document.CreateElement("script");
                    element2.SetAttribute("type", "text/javascript");
                    element2.SetAttribute("text", "function _func(){alert('OK')}");   //这里写JS代码
                    HtmlElement head = webQzone.Document.Body.AppendChild(element2);
                    webQzone.Document.InvokeScript("_func");
    
                    //方法2
                    var doc = this.webQzone.Document.DomDocument as IHTMLDocument2;
                    var win = doc.parentWindow as IHTMLWindow2;
                    string jscode = @"alert('OK2')";  //这里写JS代码
                    win.execScript(jscode, "javascript");

    参考:

    C#通过webbrowser控件与javascript交互

    1.C#里调用控件里面网页的js函数

    // 调用JavaScript的messageBox方法,并传入参数
    object[] objects = new object[1];
    objects[0] = “C#访问JavaScript脚本”;

    this.webBrowser1.Document.InvokeScript(“messageBox”, objects);

    //object就是传入的参数,而messageBox则是网页中预定义好的js函数。

    通过这种方式C#里面就可以执行Javascript函数,可以把上面的代码放到一个button的click事件里面。


    2.C#windows窗体应用webbrowser控件里网页js调用C#窗体的函数

    首先需要在代码里面加上

    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
    public partial class Form1 : Form

    {

    …..//

    }

    这样使得C#的com对象是对网页里的javascript可见的。

    然后在嵌入网页里面通过“window.external.MyMessageBox(‘javascript访问C#代码’)” ,即通过window.external捕获调用c#定义好的函数。

    具体Form.cs代码如下(通过vs2008创建的c#window窗体应用,拖拽上一个webbrowser控件和button控件。):

    [System.Runtime.InteropServices.ComVisibleAttribute(true)]
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    System.IO.FileInfo file = new System.IO.FileInfo(“test.html”);
    // WebBrowser控件显示的网页路径
    this.webBrowser1.Url = new Uri(file.FullName);
    // 将当前类设置为可由脚本访问
    this.webBrowser1.ObjectForScripting =this;

    }

    private void button1_Click(object sender, EventArgs e)
    {

    }
    // 提供给JavaScript调用的方法
    public void MyMessageBox(string message)
    {
    MessageBox.Show(message);
    }

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {

    }

    private void button1_Click_1(object sender, EventArgs e)
    {
    // 调用JavaScript的messageBox方法,并传入参数
    object[] objects = new object[1];
    objects[0] = “C#访问JavaScript脚本”;
    this.webBrowser1.Document.InvokeScript(“messageBox”, objects);
    }
    }

    test.html内容比较简单:

    <html>
    <head>
    <meta http-equiv=”Content-Language” content=”zh-cn”>
    <script language=”javascript” type=”text/javascript”>
    <!– 提供给C#程序调用的方法 –>
    function messageBox(message)
    {
    alert(message);
    }
    </script>
    </head>
    <body>
    <!– 调用C#方法 –>
    <button οnclick=”window.external.MyMessageBox(‘javascript访问C#代码’)” >
    javascript访问C#代码</button>
    </body>
    </html>

    配置运行成功的话,可以看到相互调用的效果,希望对需要的童鞋有用!

    补充一个js调用C#函数的方法:

    1,设置脚本对象:


    wb.ObjectForScripting = this; // wb为Webbrowser对象
    2,公开方法
    public void Alert()
    {
    MessageBox.Show("dkkfdkf");
    }
    3,然后页面上用javascript可以调用这个方法
    external.Alert();

     看了高人的博客,再补充几个,哈:

    Winform WebBrowser控件对访问页面执行、改写、添加Javascript代码
     


    大家有兴趣可以加我QQ群交流:14792063 广州软件开发团队

    使用Winform WebBrowser控件对访问页面执行、改写、添加Javascript代码,可以解决许多问题,实现你想要的效果。

    可以通过引用Microsoft.mshtml,实现对Javascript的操作,代码如下:

    代码
    mshtml.IHTMLDocument2 doc  =  webBrowser1.Document.DomDocument  as  mshtml.IHTMLDocument2;
    mshtml.IHTMLWindow2 win 
    =  doc.parentWindow  as  mshtml.IHTMLWindow2;
    win.execScript(
    @" alert('hello webbrowser') " " javascript " );

     

    其实还有一种更好的、无需引用Microsoft.mshtml的实现方式:
    代码
    HtmlElement ele  =  webBrowser1.Document.CreateElement( " script " );
    ele.SetAttribute(
    " type " " text/javascript " );
    ele.SetAttribute(
    " text " " alert('hello webbrowser') " );
    webBrowser1.Document.Body.AppendChild(ele);

     

    这种使用.Net框架本身所提供的对象,相比引用框架外的COM,好处是显而易见的,这将更方便于安装部署至客户机上。

    执行上述两段代码的效果是一样的,都将弹出网页对话框“hello webbrowser”。如果仅是执行Javascript方法,那么,有更简单的且可获得方法返回值的方式,首先假如页面上有如下Javascript方法:

    function sayHello(to) {
        alert(
    ' hello  '   +  to);
        
    return   ' hi, i am javascript ' ;
    }

     

    在Winform中执行以下代码,首先会弹出网页对话框“hello webbrowser”,然后是Winform的MessageBox对话框“hi, i am javascript”

     MessageBox.Show(webBrowser1.Document.InvokeScript("sayHello",new object[]{"webbrowser"}).ToString());

    Winform WebBrowser控件是一个好东西,它不但可以导航网页,还可以使用它获取一些在客户端浏览器HTML源代码中无法获取的数据。如使用了AJAX获取数据的页面,通过客户端浏览器查看源代码的方式,将无法获取到这部分的数据;又如使用了Javascript对内容进行加密以防止采集的页面,即使让你获得HTML源代码,也难以解密得到你想要的结果。但WebBrowser使得这一切变得简单!有兴趣的朋友欢迎继续阅读本博的另一篇文章《》,讲述如何通过WebBrowser访问加密页面,改写其中的Javascirpt方法获取加密的结果。





    展开全文
  • duilib WebBrowser控件执行javascriptjs

    千次阅读 2017-03-06 10:12:12
    执行js务必在网页加载完成时执行,示例代码片段如下: void CWebWnd::NavigateComplete2(CWebBrowserUI* pWeb, IDispatch *pDisp,VARIANT *&url) { CDuiString strUrl(url->bstrVal); // execute js start ...

    执行js务必在网页加载完成时执行,示例代码片段如下:

    void CMyWebBrowserEvenrHandler::NavigateComplete2(CWebBrowserUI* pWeb, IDispatch* pDisp, VARIANT*& url)
    {
    	// 页面加载完毕才能执行js
    	// execute js start 
    	IDispatch *pHtmlDocDisp = pWeb->GetHtmlWindow();
    	IHTMLDocument2 *pHtmlDoc2 = NULL;
    	HRESULT hr = pHtmlDocDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pHtmlDoc2);
    	pHtmlDocDisp->Release();
    	if (SUCCEEDED(hr) && pHtmlDoc2 != NULL)
    	{
    		CComQIPtr<IHTMLWindow2> pHTMLWnd;
    		pHtmlDoc2->get_parentWindow(&pHTMLWnd);
    		if (SUCCEEDED(hr) && pHTMLWnd != NULL)
    		{
    			//CComBSTR bstrjs = SysAllocString(_T("document.documentElement.style.overflow = 'hidden'"));//去除水平方向滚动条  
    			CComBSTR bstrjs = SysAllocString(_T("document.documentElement.style.overflowY = 'hidden'"));//去除竖直方向滚动条  
    			CComBSTR bstrlan = SysAllocString(_T("javascript"));
    			VARIANT varRet;
    			pHTMLWnd->execScript(bstrjs, bstrlan, &varRet);
    		}
    	}
    	// execute js end
    }


    展开全文
  • 来自:...winform的WebBrowser控件,可以方便的载入页面并执行一些操作,我们可以注入自己的js脚本在页面中执行,方法如下: HtmlElement head = web

    来自:http://outofmemory.cn/code-snippet/1706/c-winform-program-WebBrowser-control-execution-javascript-script

    winform的WebBrowser控件,可以方便的载入页面并执行一些操作,我们可以注入自己的js脚本在页面中执行,方法如下:

    HtmlElement head = webBrowser1.Document.GetElementsByTagName("head")[0];
    HtmlElement scriptEl = webBrowser1.Document.CreateElement("script");
    IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement;
    element.text = "function sayHello() { alert('hello') }";
    head.AppendChild(scriptEl);
    webBrowser1.Document.InvokeScript("sayHello");
    

    另外如果你的脚本非常简单也可以用下面的方法:

    string jCode = "alert("Hello");"
    // or any combination of your JavaScript commands
    // (including function calls, variables... etc)
    
    // WebBrowser webBrowser1 is what you are using for your web browser
    webBrowser1.Document.InvokeScript("eval", new object[] { jCode });
    

    Enjoy Coding!!!


    展开全文
  • WebBrowser控件使用技巧分享

    千次阅读 2018-08-15 11:48:17
    在发布“淘宝登货员”时发现不少朋友对WebBrowser控件比较感兴趣,故在此分享一下使用心得。 首先分享一个WebBrowser的扩展类(此类所需的dll将在文章末尾提供下载),大家最好都使用
    原文地址为:
    WebBrowser控件使用技巧分享
    

     

    在发布“淘宝登货员”时发现不少朋友对WebBrowser控件比较感兴趣,故在此分享一下使用心得。

    首先分享一个WebBrowser的扩展类(此类所需的dll将在文章末尾提供下载),大家最好都使用这个类来替代.Net框架中的WebBrowser类,它提供了两个扩展功能:

    1.屏蔽错误脚本提示。修正了WebBrowser控件本身屏蔽错误不全的问题,由启明提出,原文:http://www.cnblogs.com/hobe/archive/2007/01/14/619906.html

    2.扩展NewWindow事件。修正了WebBrowser控件本身的NewWindow事件不提供新窗口Url的问题,通过新增的BeforeNewWindow事件予以支持,由佳文转载并整理,原文:http://www.cnblogs.com/yjwgood/archive/2009/02/09/1386789.html

    整合后的代码如下:

    public class ExWebBrowser : System.Windows.Forms.WebBrowser

    {

        private SHDocVw.IWebBrowser2 Iwb2;

     

        protected override void AttachInterfaces(object nativeActiveXObject)

        {

            Iwb2 = (SHDocVw.IWebBrowser2)nativeActiveXObject;

            Iwb2.Silent = true;

            base.AttachInterfaces(nativeActiveXObject);

        }

     

        protected override void DetachInterfaces()

        {

            Iwb2 = null;

            base.DetachInterfaces();

        }

     

        System.Windows.Forms.AxHost.ConnectionPointCookie cookie;

        WebBrowserExtendedEvents events;

     

        //This method will be called to give you a chance to create your own event sink

        protected override void CreateSink()

        {

            //MAKE SURE TO CALL THE BASE or the normal events won't fire

            base.CreateSink();

            events = new WebBrowserExtendedEvents(this);

            cookie = new System.Windows.Forms.AxHost.ConnectionPointCookie(this.ActiveXInstance, events, typeof(DWebBrowserEvents2));

        }

     

        protected override void DetachSink()

        {

            if (null != cookie)

            {

                cookie.Disconnect();

                cookie = null;

            }

            base.DetachSink();

        }

     

        //This new event will fire when the page is navigating

        public event EventHandler BeforeNavigate;

        /// <summary>

        /// 可用于替代原来的NewWindow事件,新增了事件的Url参数支持。

        /// </summary>

        [CategoryAttribute("操作"), DescriptionAttribute("经过扩展的NewWindow事件,使用继承后的WebBrowserExtendedNavigatingEventArgs类型参数实现Url参数支持")]

        public event EventHandler BeforeNewWindow;

     

        protected void OnBeforeNewWindow(string url, out bool cancel)

        {

            EventHandler h = BeforeNewWindow;

            WebBrowserExtendedNavigatingEventArgs args = new WebBrowserExtendedNavigatingEventArgs(url, null);

            if (null != h)

            {

                h(this, args);

            }

            cancel = args.Cancel;

        }

     

        protected void OnBeforeNavigate(string url, string frame, out bool cancel)

        {

            EventHandler h = BeforeNavigate;

            WebBrowserExtendedNavigatingEventArgs args = new WebBrowserExtendedNavigatingEventArgs(url, frame);

            if (null != h)

            {

                h(this, args);

            }

            //Pass the cancellation chosen back out to the events

            cancel = args.Cancel;

        }

     

        //This class will capture events from the WebBrowser

        class WebBrowserExtendedEvents : System.Runtime.InteropServices.StandardOleMarshalObject, DWebBrowserEvents2

        {

            ExWebBrowser _Browser;

            public WebBrowserExtendedEvents(ExWebBrowser browser) { _Browser = browser; }

     

            //Implement whichever events you wish

            public void BeforeNavigate2(object pDisp, ref object URL, ref object flags, ref object targetFrameName, ref object postData, ref object headers, ref bool cancel)

            {

                _Browser.OnBeforeNavigate((string)URL, (string)targetFrameName, out cancel);

            }

     

            public void NewWindow3(object pDisp, ref bool cancel, ref object flags, ref object URLContext, ref object URL)

            {

                _Browser.OnBeforeNewWindow((string)URL, out cancel);

            }

     

        }

     

        [System.Runtime.InteropServices.ComImport(), System.Runtime.InteropServices.Guid("34A715A0-6587-11D0-924A-0020AFC7AC4D"),

        System.Runtime.InteropServices.InterfaceTypeAttribute(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIDispatch),

        System.Runtime.InteropServices.TypeLibType(System.Runtime.InteropServices.TypeLibTypeFlags.FHidden)]

        public interface DWebBrowserEvents2

        {

     

            [System.Runtime.InteropServices.DispId(250)]

            void BeforeNavigate2(

                [System.Runtime.InteropServices.In,

                System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.IDispatch)] object pDisp,

                [System.Runtime.InteropServices.In] ref object URL,

                [System.Runtime.InteropServices.In] ref object flags,

                [System.Runtime.InteropServices.In] ref object targetFrameName, [System.Runtime.InteropServices.In] ref object postData,

                [System.Runtime.InteropServices.In] ref object headers,

                [System.Runtime.InteropServices.In,

                System.Runtime.InteropServices.Out] ref bool cancel);

            [System.Runtime.InteropServices.DispId(273)]

            void NewWindow3(

                [System.Runtime.InteropServices.In,

                System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.IDispatch)] object pDisp,

                [System.Runtime.InteropServices.In, System.Runtime.InteropServices.Out] ref bool cancel,

                [System.Runtime.InteropServices.In] ref object flags,

                [System.Runtime.InteropServices.In] ref object URLContext,

                [System.Runtime.InteropServices.In] ref object URL);

        }

    }

     

    public class WebBrowserExtendedNavigatingEventArgs : CancelEventArgs

    {

        private string _Url;

        public string Url

        {

            get { return _Url; }

        }

     

        private string _Frame;

        public string Frame

        {

            get { return _Frame; }

        }

     

        public WebBrowserExtendedNavigatingEventArgs(string url, string frame)

            : base()

        {

            _Url = url;

            _Frame = frame;

        }

    }

    技巧1:在当前窗口内打开目标为新窗口的超链接

    通过上述的扩展类支持得以实现,增加BeforeNewWindow事件的处理函数以进行处理:

    void webBrowser1_BeforeNewWindow(object sender, EventArgs e)

    {

        WebBrowserExtendedNavigatingEventArgs eventArgs = e as WebBrowserExtendedNavigatingEventArgs;

        if (eventArgs.Url.ToLower() != "about:blank")

            webBrowser1.Navigate(eventArgs.Url);

        eventArgs.Cancel = true;

    }

    这种方法的弊病在于可能会错误地转向到网站的弹窗广告,为了规避此问题,可以强制取消一切弹出窗口,采取另一种方法实现当前窗口内打开新窗口超链接,增加DocumentCompleted事件的处理函数以进行处理:

    void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)

    {

        if (webBrowser1.ReadyState > WebBrowserReadyState.Interactive)

        {

            foreach (HtmlElement f in webBrowser1.Document.Links)

            {

                var s = f.GetAttribute("target");

                if (s != null && s.ToLower() == "_blank") f.SetAttribute("target", "_self");

            }

        }

    }

    此方法将遍历所有<a>元素,修改其目标为当前窗口,但是此方法又会引发新的问题,即如果页面中某些元素长时间都未加载完成时,此事件将迟迟不会被引发,也就是说用户必须要等到页面完完全全加载完毕之后才可能在当前窗口内打开新窗口超链接。

    根据一些人的经验,DocumentCompleted事件会在每次加载网页的过程中触发两次,第一次触发时WebBrowser控件的ReadyState属性应为Interactive,第二次则为Complete,根据注释来看,Interactive应该是代表页面加载初步完成,已具有基本交互能力的状态,这时应当是理想的编辑状态,但我尝试将代码中的if (webBrowser1.ReadyState > WebBrowserReadyState.Interactive)修改为if (webBrowser1.ReadyState >= WebBrowserReadyState.Interactive),并没有什么明显效果,页面上的超链接还是要等待全部加载之后才会被修改。

    为此我还尝试过在Navigated事件中进行处理,也不起作用。希望高人能对此给出完美的解决方案

    技巧2:获取状态栏信息

    增加StatusTextChanged事件处理函数进行处理:

    void webBrowser1_StatusTextChanged(object sender, EventArgs e)

    {

        label1.Text = webBrowser1.StatusText;

    }

    技巧3:页面转向后改变地址栏地址

    Navigated事件处理函数中改变地址栏地址是最恰当的:

    private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)

    {

        textBox1.Text = webBrowser1.Url.ToString();

    }

    技巧4:正确设置单选框的方法

    建议使用执行单击事件的方式来设置单选框,而不是修改属性:

    webBrowser1.Document.GetElementById("RBT_A").InvokeMember("click");

    技巧5:正确设置联动型下拉列表的方法

    比较常见的联动型多级下拉列表就是省/市县选择了,这种情况下直接设置选择项的属性不会触发联动,需要在最后执行触发事件函数才能正常工作:

    foreach (HtmlElement f in s.GetElementsByTagName("option"))

    {

        if (f.InnerText == "北京")

        {

            f.SetAttribute("selected", "selected");

        }

        else

        {

            f.SetAttribute("selected", "");

        }

    }

    s.RaiseEvent("onchange");

    此方法来源于:http://topic.csdn.net/u/20070309/11/aef46651-a15a-4777-b832-e71b09a7b9e0.html

    技巧6:使用延迟等待服务器交互

    有时会遇到联动型下拉列表需要同服务器交互的情况,如果只在一个函数里连续进行设置,往往会失败,因为代码执行速度很快,这期间页面还没有从服务器得到并装载数据。

    这时候应当通过使用Timer等方法设置延迟间隔,再进行更改,需注意的是,不应当使用Sleep方法停止当前线程的执行以求达到延迟目的,因为WebBrowser控件也处于当前线程内,Sleep会同时暂停WebBrowser控件的运作。

    还有一点需要注意,就是如果程序内用到多个Timer的话,有可能引发不可预料的错乱,详情及解决办法可参看我的前一篇文章

    尚未解决的问题

    有一个问题一直困扰我,始终也没找到相关的资料:

    我现在可以通过WebBrowser实现对各种Html元素的操控,唯独无法控制Html的上传控件,即:

    <input type="file" size="50"/>

    应当是出于安全原因,JS代码无法访问和设置此控件所选择的文件路径,这是符合情理的,但是WebBrowser中也没能找到相关的支持,这样就无法实现自动上传等功能,希望有高手能指出解决办法。

    还有一个似乎是无解的问题,就是读取和操作页面内的框架页或内嵌页的问题,很多人发出疑问,但始终没找到解决方法,此方面最典型的应用就是自动点嵌入式广告功能了,而现在不但无法点击,甚至都无法获取框架页的代码等信息。

    其他相关技术资料

    ExtendedWebBrowser的再扩展:http://hi.baidu.com/tanjian/blog/item/d46b83021772a10f4afb511c.html

    C#利用WebBrowser操作HTMLhttp://hi.baidu.com/lightrock/blog/item/c4a61d2bf6dde5fce7cd40fb.html

    关于C#.netWebBrowser如何处理多框架结构页面下载完成问题:http://blog1.poco.cn/myBlogDetail-htx-id-381745-userid-7940008-pri--n-0.shtml

    利用webBrowser获取框架内Html页面内容:http://www.cnblogs.com/tishifu/archive/2007/12/10/990071.html

    WebBrowser控件的简单应用2http://www.cnblogs.com/dlwang2002/archive/2007/04/11/709078.html

    WebBrowser控件应用:弹出新窗体和关闭窗口:http://www.cnblogs.com/dlwang2002/archive/2007/04/14/713499.html

    .Net 2.0实例学习:WebBrowser页面与WinForm交互技巧:http://smalldust.cnblogs.com/archive/2006/03/08/345561.html

    WebBrowser控件禁用超链接转向、脚本错误提示、默认右键菜单和快捷键:http://www.zu14.cn/2008/11/19/webbrowser/

     

    下载Interop.SHDocVw.dll:http://cid-0612298d2255e149.skydrive.live.com/self.aspx/.Public/%e6%96%87%e6%a1%a3/Interop.SHDocVw.zip

    下载本文的PDF版本: http://cid-0612298d2255e149.skydrive.live.com/self.aspx/.Public/%e6%96%87%e6%a1%a3/WebBrowser%e6%8e%a7%e4%bb%b6%e4%bd%bf%e7%94%a8%e6%8a%80%e5%b7%a7%e5%88%86%e4%ba%ab.pdf

     


    转载请注明本文地址: WebBrowser控件使用技巧分享
    展开全文
  • 在实际应用中我们可能需要WebBrowser控件主动执行我们需要的脚本,执行脚本现在有两种方法。 1、WebBrowser控件加载脚本,简单方便,适用于简短的脚本,无法执行复杂操作。 webBrowser.Navigate("javascript:...
  • WebBrowser控件使用

    千次阅读 2019-02-11 04:03:46
    WebBrowser控件属性: 1、Application 如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。如果在宿主对象中自动化对象无效,程序将返回WebBrowser控件的自动化对象 2、Parent 返回...
  • https://www.cnblogs.com/crwy/p/11275245.html
  • Webbrowser控件史上最强技巧全集

    千次阅读 2018-08-04 15:57:12
    Webbrowser控件史上最强技巧全集 VB调用webbrowser技巧集 1、获得浏览器信息: Private Sub Command1_Click() WebBrow
  • var doc = this.WebBrowser.Document.DomDocument as IHTMLDocument2; var win = doc.parentWindow as IHTMLWindow2; string jscode = @"  //这里写JS代码 "; win.execScript(jscode, "javascrip...
  • C#通过webbrowser控件javascript交互

    万次阅读 2011-10-22 15:31:38
    C#通过webbrowser控件javascript交互 1.C#里调用控件里面网页的js函数 // 调用JavaScript的messageBox方法,并传入参数 object[] objects = new object[1]; objects[0] = “C#访问JavaScript脚本”; this....
  • C# WinForm WebBrowser控件详解

    千次阅读 2019-06-27 16:26:44
    WebBrowser控件的常用属性: Document:获取当前正在浏览的文档 DocumentTitle:获取当前正在浏览的网页标题 StatusText:获取当前状态栏的文本 Url:获取当前正在浏览的网址的Uri ReadyState:获取浏览的状态 ...
  • 在mfc操作网页的过程中,使用ActiveX控件
  • 去年搞的139说客活跃软件,采用WinForm开发,主要通过WebBrowser控件,对139说客的网页进行访问操作,如登录139社区,发说客,拨打G3电话。 之前我一直使用C#对表单元素进行操作,如模拟鼠标点击表单对象获取焦点,...
  • win.parent.execScript("showUrlUpload()", "javascript") Dim doc = webdocin.Document doc.All("fileurl").SetAttribute("Value", "zz") 搞定! 转载于:...
  • 在C# WebBrowser控件插入JS代码,并执行! HtmlElement script = webBrowser.Document.CreateElement("script"); script.SetAttribute("type", "text/javascript"); script.SetAttribute("text", "function ...
  • C# webBrowser控件调用echart

    千次阅读 2020-06-07 18:01:37
    下载后得到:echarts.js 和 echarts.min.js html中引入: <!-- 引入 ECharts 文件 --> <script src="echarts.min.js"></script> 之后可以调用Echart使用,主要是对Echart的option设置。 Echart ...
  • 聊做备忘。 假设js代码为: string jsCode = @"function showAlert(s) {{ alert('hello, world...那么,在WebBrowser文档加载完成后,两种方法可以执行它: 1、常规方法,追加script元素: var script = bro...
  • WebBrowser控件打印

    2015-11-24 16:45:20
    一、WebBrowser控件 &lt;object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'&gt;&lt;/object&gt; 二、WebBrowder控件的方法 //打印 WebBrow...
  • C# Winform WebBrowser控件

    2017-07-28 11:33:00
    2、注意:WebBrowser控件会占用大量资源。使用完该控件后一定要调用Dispose方法,以便确保及时释放所有资源。必须在附加事件的同一线程上调用Dispose方法,该线程应始终是消息或用户界面(UI)线程。 3、WebBrowser...
  • webBrowser 调用 JavaScript

    千次阅读 2018-07-31 19:53:37
    首先为WebBrowser添加页面 string p = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase; p = p.Substring(0, p.LastIndexOf("\\")); p = p.Substring(0, p.LastIndexOf("\\"...
  • WebBrowser控件详解

    2019-03-08 10:32:00
    WebBrowser控件的常用属性: Document:获取当前正在浏览的文档 DocumentTitle:获取当前正在浏览的网页标题 StatusText:获取当前状态栏的文本 Url:获取当前正在浏览的网址的Uri ReadyState:获取浏览的状态 ...
  • 本例程序运行效果图如下所示: WebBrowser控件之所有强大,一方面是由于控件...1:让HTML页面的js调用我们在WebBrowser控件外面编写的函数。 2:让我们可以调用网页中的Javascript代码 如果能够让网页里的Ja
  • 1、如果打开的页面中,有通过javascript关闭页面的,只会把控件关闭,包含控件的... 3、打开有WebBrowser控件的窗口,关闭窗口之后,内存得不到释放(此Bug在其他语言中也存在)。  以上三个问题,是必须解决的...
  • WebBrowser控件默认使用IE9,IE10的方法

    万次阅读 2017-02-09 17:59:04
    作者:Xiaoqiang.Wu 发布:2013-04-24 01:46 分类:ASP.NET, Microsoft产品  阅读:31,099 views 2条...发现WebBrowser控件默认使用的版本是IE7的兼容模式.而淘宝的宝贝详细页居然对IE7的支持不是很好. 成交记录无
  • .Net中webBrowser控件指定IE版本

    千次阅读 2015-09-10 14:48:14
    今天采用.Net中的webBrowser控件时,发觉Angular控件无法正确执行。由于web程序是使用chrome浏览器进行开发,在测试过程中没遇到任何问题。打开IE进行测试,也是一切正常,经过检查,webBrowser默认使用IE7兼容模式...
  • 在winform嵌入网页项目中,如何在网页中通过js脚本调用winform中类的方法?此demo可以帮到你
  • 还是处理视频下载所相关的问题。...c#中,我用WebBrowser这个控件处理。设置项目类型为控制台程序,加Form承载WebBrowser实现。 记录代码以做备忘: using System; using System.IO; using System.Net; using Syst...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,667
精华内容 1,466
关键字:

webbrowser控件执行js