【问题标题】:HtmlElement.SetAttribute doesn't apply to webBrowserHtmlElement.SetAttribute 不适用于 webBrowser
【发布时间】:2014-10-31 10:21:12
【问题描述】:

我不明白,为什么对任何 HtmlElement 的更改都不会更改 webBrowsers 的显示。

这是我的代码:

    private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        if (webBrowser.ReadyState != WebBrowserReadyState.Complete)
            return;
        if (e.Url.AbsolutePath != (sender as WebBrowser).Url.AbsolutePath)
            return;

        HtmlElementCollection elemCol = webBrowser.Document.All;
        foreach (HtmlElement elem in webBrowser.Document.All)
        {
            if (elem.TagName.Equals("SPAN"))
                elem.SetAttribute("width", "100");  //style="background: red;"

            HtmlElement parentElem = elem.Parent;
        }
        webBrowser.Update();
        webBrowser.Refresh();
    }

在调试时,我查看了元素的 OuterHtml - 这如预期的那样发生了变化。 当查看其父元素的 innerHtml 时,它也会发生变化。 甚至 webBrowser.Document 的正文 innerHtml 也会发生变化。 但是它对 Gui 中的 webBrowser 没有影响。查看那里的源代码,您找不到更改。

有什么想法吗?我仍然尝试了 Update() 和 Refresh() 但没有成功。

【问题讨论】:

  • 这是什么语言?您应该使用正确的语言标签edit
  • 对不起。我在 WinForms 中使用 C#

标签: c# html setattribute


【解决方案1】:

我用它来改变Style属性

var currentStyle = htmlElement.Style;
htmlElement.Style = currentStyle.Replace("margin-left: 450px", "margin-left: 50px");

【讨论】:

    猜你喜欢
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    相关资源
    最近更新 更多