Hi All,
I find a issue to get ClientTop and ClientLeft for a IHtmlElement2 object from web browser control on different version combination of IE and WinOS.
Here is the sample to reproduce
private void Form1_Load(object sender, EventArgs e) { var input = "<button style=\"\">button</button>"; webBrowser1.DocumentText = "<html><body></body></html>"; IHTMLDocument2 doc = webBrowser1.Document.DomDocument as IHTMLDocument2; doc.designMode = "On"; webBrowser1.DocumentText = "<html><body>" + input + "</body></html>"; webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowser1_DocumentCompleted); } private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { IHTMLDocument2 doc = webBrowser1.Document.DomDocument as IHTMLDocument2; IHTMLElement btn = doc.body.children[0]; MessageBox.Show(String.Format("clientLeft:{0}, clinetTop:{1}",btn.clientLeft,btn.clientTop)); }
The results are
IE9 on Windows 7 : ClientLeft = 2 ClientTop = 2
IE10 on Windows 7 : ClientLeft = 1 ClientTop = 1
IE11 on Windows 7 : ClientLeft = 1 ClientTop = 1
IE10 on Windows 8 : ClientLeft = 2 ClientTop = 2
IE11 on Windows 8.1 : ClientLeft = 2 ClientTop = 2
Any one can explain for this?
Regards,
Yi
MSC on Computer Science (Parallel algorithm)