我正在尝试将一些伴随一些其他 HTML 的 CSS 注入到 C# 托管的 WebBrowser 控件中。我正在尝试通过底层的 MSHTML(DomDocument 属性)控件来执行此操作,因为此代码用作完整 IE8 BHO 的各种原型。
问题是,虽然我可以注入 HTML(通过 mydomdocument.body.insertAdjacentHTML)和 Javascript(通过 mydomdocument.parentWindow.execScript),但它完全拒绝了我的 CSS 代码。
如果我将包含要插入的 HTML 的字符串与注入后的目标页面源进行比较,则 MSHTML 的源将包含除<style>
元素及其基础源之外的所有内容。
CSS 通过了 CSS 2.1 的 W3C 验证。它不会做任何太棘手的事情,除了一些背景图像属性将图像直接嵌入到 CSS 中(例如background-image: url("data:image/png;base64
...),并且注释掉这些行不会改变结果。
更奇怪的是(我不确定这是否相关),上周我对此没有任何问题。这周我又回到了它,在切换了一些在实际注入之前处理要注入的 HTML 的代码之后,它不再起作用了。自然地,我认为我的其中一个更改可能是问题所在,但是在注释掉所有这些逻辑并将其输入一个直字符串之后,HTML 仍然显示为未格式化。
目前我正在注入<body>
标签,虽然我已经尝试注入<head>
并且遇到了类似的结果。
在此先感谢您的帮助!
汤姆