【问题标题】:How to get the address of a linked Stylesheet in webbrowser control如何在 webbrowser 控件中获取链接样式表的地址
【发布时间】:2019-08-21 15:33:54
【问题描述】:

我在 C# winform 中有一个 webbrowser 控件,它加载以下文本:

<head>

<link rel="stylesheet" type="text/css" href="d:/git/ArticleScraper/reports/default.css">
</head>

我可以找到 css 的地址 (d:/git/ArticleScraper/reports/default.css) 并将其加载到文本框编辑器中吗?它可以是具有绝对或相对地址的本地或在线 css 文件。

我没有在 webbrowser 控件中找到任何相关的属性或方法。

【问题讨论】:

    标签: c# html css webbrowser-control


    【解决方案1】:

    WebBrowser 控件有一个事件DocumentComplete。 一旦您的文档/文件加载完成,就会触发它。

    首先,注册活动:

    webBrowser1.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.WebBrowser1_DocumentCompleted);
    

    在事件回调中,搜索“LINK”元素标签。

        private void WebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            var browser = sender as WebBrowser;
            var document = browser.Document;
    
            foreach(HtmlElement link in document.GetElementsByTagName("LINK"))
            {
                // this is your link:
                link.GetAttribute("href")
            }
        }
    

    【讨论】:

    • 如果这回答了您的问题,最好选择它作为选定答案。
    【解决方案2】:

    以下代码将为您提供帮助。这个是使用 LINQ 查询

        private void Form1_Load(object sender, EventArgs e)
        {
            webBrowser1.Navigate(@"D:\DemoFolder\demo.html");
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
            // Get a link
            HtmlElement  link = (from HtmlElement element in webBrowser1.Document.GetElementsByTagName("link") select element)
                .Where(x => x.GetAttribute("rel") != null && x.GetAttribute("rel") == "stylesheet" && x.GetAttribute("href") != null).FirstOrDefault();
    
            if (link != null)
            {
                // Get CSS path
                string path = link.GetAttribute("href");
    
                textBox1.Text = path;
            }
        }
    

    以下是输出的截图

    【讨论】:

      猜你喜欢
      • 2012-03-22
      • 1970-01-01
      • 2016-06-15
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多