【发布时间】:2017-04-20 07:19:24
【问题描述】:
我在 CefSharp 浏览器中注入 javascript。它工作得很好,除了一些只发生在 CefSharp 上的奇怪行为。在段落中注入 span 标签后,段落的填充以某种方式被忽略了。
这就是它在 Chrome 和 Chromium 中的样子:
这就是它在 CefSharp 中的样子:
这是 CefSharp 和 DevTools 中的样子:
生成的 HTML 结构如下所示:
我可以很容易地想到一个解决方法,但我想知道这里的问题是什么。
更新:
这是原生 HTML 的问题,没有任何 javascript 注入。这是与左侧 CefSharp (v55.0.0, redist: v3.2883.1552) 和右侧 Chromium (Version 60.0.3077.0 (Developer Build) (64-bit)) 的比较:
我注意到渲染有所不同。
【问题讨论】:
-
您是否使用 CEF 的 DevTools 在错误的情况下调试实际的 DOM 树/样式?
-
@fddima 添加了一张图片,其中包含使用 DevTools 的结果。填充似乎确实存在,但它似乎是在内容周围添加的。 HTML 源代码是相同的。
-
我最好的选择是存在布局上的差异(在上面的某个地方?)。而 foreignObject 只是坐标错误。至少屏幕上的颜色不同,所以也可能有所不同。我完全不确定注入脚本是什么意思......即如果您将此连接到脚本注入 - 然后尝试注入不相关的脚本以查看注入根本没有问题。如果是这样 - 那么脚本的工作有问题吗?
-
@fddimaforeignObject 的坐标没有改变。颜色基于值是真还是假,这无关紧要。该脚本的工作是在段落标签的内容周围添加跨度。该脚本是从我用来在 Chromium 中测试的项目中复制的。该脚本工作正常,否则它们将不会添加跨度,并且上图中没有红色。
-
然后我建议用 chrome 重现这个。如果它不可重现,这可能是已经修复的布局错误(但通常可以使用与具体 CEF 构建中使用的相同版本的铬来重现)。
标签: javascript html chromium-embedded cefsharp