码迷,mamicode.com
首页 > Windows程序 > 详细

c#: WebBrowser控件html代码注入及交互

时间:2018-11-21 16:07:30      阅读:635      评论:0      收藏:0      [点我收藏+]

标签:嵌入   www.   ring   get   png   .com   url   console   object   

主题仍是下载相关。

页面加载完成后,注入html元素,以使能够与主程序交互。并使WebBrowser与js交互,可以实现一些有趣的功能。

 

欲使WebBrowser与js交互,其所在页面类,须加上[ComVisible(true)]标记。

记录嵌入代码如下:

    [ComVisible(true)]
    public partial class Main : Form
    {
        public Main()
        {
            InitializeComponent();

            browser.ObjectForScripting = this;
        }

        private void txtUrl_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                btnGo.PerformClick();
        }

        private void btnGo_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtUrl.Text))
                browser.Navigate(txtUrl.Text);
        }

        public void ShowURL(string url)
        {
            MessageBox.Show("OK, Url from website is:\r\n " + url, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }

        private void browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            if (browser.ReadyState == WebBrowserReadyState.Complete && e.Url == browser.Url)
            {
                //html注入
                var emt = browser.Document.GetElementById("watch-header");
                if (emt != null)
                {
                    Console.WriteLine("Yeah!");
                    //https://www.youtube.com/watch?v=vvppaufeD3Q
                    emt.OuterHtml = "<div align=‘right‘><a onclick=\"window.external.ShowURL(‘" + e.Url.ToString() + "‘);return false;\">Click Me!</a></div>\r\n" + emt.OuterHtml;
                }
            }
        }
    }

 

效果如图:

技术分享图片

颇是有点意思!

 

参考:

C#中webbrowser与javascript(js)交互的方法 - DragonDean - 博客园

c#: WebBrowser控件html代码注入及交互

标签:嵌入   www.   ring   get   png   .com   url   console   object   

原文地址:https://www.cnblogs.com/crwy/p/9994095.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!