[英]Get current / computed style of an HtmlElement in WebBrowser control
我需要在 winform webrowser 中获取元素的当前计算样式。
获取元素: HtmlElement em = webBrowser1.Document.GetElementById("theIdOfElement");
现在获取我可以使用的样式: var style = em.Style
或var style = em.GetAttribute("style");
文档说样式属性“获取或设置当前元素的以分号分隔的样式列表。 ”所以结果应该类似于:“font-weight:bold”
但是我在第一种情况下得到的结果是“null”,其次是“System.__ComObject”据我所知,如果样式是 html,例如:
<div id ="myId" style="color:red" </div>
结果是“颜色:红色”,但是当 div 样式受 CSS 影响时,结果为空。
即使样式仅在 CSS 文件中,有没有办法获取 Htmlelemnt 的当前样式?
如果我无法获得当前样式,是否还有其他方法可以确定 htmlelement 是否可见?
style
属性返回您明确分配给style
。
要获取计算样式,你可以使用currentStyle
财产element
或getComputedStyle
的方法window
。
以下代码获取a
元素的计算background-color
和计算color
:
webBrowser1.DocumentText = @"
<html>
<head>
<style>
a {background-color:red;}
</style>
<title>Test</title>
</head>
<body>
<a id='a1' href='#' style='color:yellow;'>Test</a>
</body>
</html>";
webBrowser1.DocumentCompleted += (obj, arg) =>
{
dynamic element = webBrowser1.Document.GetElementById("a1").DomElement;
var style = element.currentStyle;
// OR
// dynamic window = webBrowser1.Document.Window.DomWindow;
// var style = window.getComputedStyle(element, null);
var backColor = style.backgroundColor;
var color = style.color;
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.