【问题标题】:CefSharp javascript injected elements inside paragraph cause ignoring its paddingCefSharp javascript在段落内注入元素导致忽略其填充
【发布时间】: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


【解决方案1】:

更新到 Chromium 57.0 / CEF 3.2987.1601(Chromium 57.0.2987.133) 解决了这个问题。 Chromium 版本之间存在严重的不匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-13
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 2016-02-03
    • 2013-11-28
    • 2015-06-05
    相关资源
    最近更新 更多