c# - HtmlElement.SetAttribute 不适用于 webBrowser

标签 c# html setattribute

我不明白,为什么对任何 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 的 body innerHtml 也会发生变化。 但是它对 Gui 中的 webBrowser 没有影响。查看那里的源代码,您找不到更改。

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

最佳答案

我用它来改变 Style 属性

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

关于c# - HtmlElement.SetAttribute 不适用于 webBrowser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26672321/

相关文章:

c# - 编码(marshal) c# 结构成员

c# - asp.net mvc 3 handleerror 全局过滤器总是显示 IIS 状态 500 页

html - 更改导航栏元素高度以匹配大输入

Javascript setattribute - 名称和值不起作用

java - 在 JSP 页面中使用 request.setAttribute

c# - JQuery .each 函数

c# - 这个COM接口(interface)可以用C#实现吗?

javascript - Coin-Slider 无法正确显示按钮(Chrome 除外)

html - DIV 重叠在提交订单的顶部 INPUT 按钮在 IE7 中无法正常工作

javascript - 如何在 JavaScript 中使用 setAttributeNS() 捕获错误?