Gecko是Firefox的渲染引擎.使用gecko-sharp可以将其嵌入到任何Mono/GTK#程序中.有一个名为GladeSharpBrowser的示例应用程序用于执行此操作.我可以设法使用修改后的项目文件来构建它,但它正在崩溃.这可以帮助您重现问题:
我使用了SharpDevelop 3.0和一个教程来安装我的Mono 2.2.我确保它使用ProcMon调用Mono的gmcs进行编译.设置SharpDevelop后,必须修改BrowserSharp.csproj,以便与Mono一起编译.
还有一条警告信息:
发现同一依赖程序集的不同版本之间存在冲突.
这很奇怪,因为所有组件都是由Mono提供的组件.
当然,还有其他方法,如GeckoFX,但我特别感兴趣的是使用Mono以独立于平台的方式进行.
是否有针对Perl的Gecko或WebKit等布局引擎的绑定?我在CPAN上找到了Gtk2-Webkit,但我想知道是否还有其他选择.
我的想法是使用其中一个引擎从Perl脚本创建网页缩略图.
我正在寻找一个关于Gecko browser/Firefox中是否存在与-webkit-mask相同的答案的可靠答案?
如果没有,有没有办法将CSS中的-webkit-mask降级为直接的背景图像处理,还是应该放弃并使用Javascript?
非常感谢!
我对 Gecko 或 Webkit 等 C++ 项目没有太多经验,我想将 Gecko 或 Webkit 嵌入到项目中,以便我可以使用 HTML 和 CSS 构建我的 UI。
我想知道如何在 C++(没有 JavaScript)中处理事件等?如果有关于这个主题的任何资源丰富的教程,我很乐意阅读。
Gecko和Webkit浏览器支持渲染连字符ff fi fl ffl via text-rendering: optimizeLegibility (字体必须有连字,例如Calibri).
MDN页面说,只有大小为20px及更高的文本才能获得连字.根据我自己的研究,这不是真的:
text-rendering: optimizeLegibility,Chrome(&Safari)将呈现连字;我在这里错过了什么吗?或者这只是MDN页面上的一个错误(过时?)我们应该修复它?
[编辑]补充阅读:粉碎杂志的"仔细看看字体渲染".
我试图找出浏览器(特别是 Firefox 或 chrome)在打印或打印预览 HTML 文档时插入分页符的位置。现在我不想避免休息,也不想定义休息的确切位置。我知道 CSS 2.1 和 CSS 3.0 中定义的 page-break-* 元素。我真的很想找出当前页面上的最后一个元素和下一个页面上的第一个元素,并将它们与实际的 HTML 代码相关联。
据我所知,没有我可以注册的事件或信号。我想到的下一件事是修补 webkit 或 gecko 并添加自定义信号/事件。但这只有在分页代码没有分散在太多文件和成员中的情况下才有可能。
我不是在要求一个完整的解决方案,而是任何想法或提示如何实现这一点。
在此先感谢您的任何建议和想法:)
更新:我需要以编程方式找出分页符的位置,因为我想根据结果修改和操作原始 HTML 文件。
救命!我使用GeckoFx-Windows-10.0-0.6浏览器和xulrunner-10.0.en-US.win32.(Visual Studio 2010 c#)一切正常.但我需要清除所有历史记录,如Firefox:工具>>选项>>隐私
我发现cookie有多清楚 Gecko.CookieManager.RemoveAll();
如何清除缓存,临时文件和历史记录?!
当我初始化时,我Gecko.Xpcom无法清理文件夹"Gecko.Xpcom.ProfileDirectory"(缓存和cookie),原因很明显.
Gecko.Xpcom.Shutdown()没有帮助
我发现了一种通过javascript清理cookie的方法:
var cookieManager = Components.classes["@mozilla.org/cookiemanager;1"].getService(Components.interfa??ces.nsICookieManager);
cookieManager.removeAll();
如何在C#中调用这个JS?
如下所示,Gecko和Blink对不同的内联块元素执行不一致的高度计算,即使它们都具有相同的css类.好像(*pause*) Trident是唯一能够让它正确的布局引擎.
我忘了(重新)设置房产吗?
此外,你可以在此看到小提琴,如果我从改变填充.3em到1em闪烁呈现预期.所有元素都具有相同的高度.但壁虎仍然"破碎".
有谁知道为什么会这样,以及如何解决它?
<a> <button> <input> <span>
Run Code Online (Sandbox Code Playgroud)
Gecko(Firefox v.39.0)

Blink(谷歌浏览器v.43.0.2357.132米):

Trident(Internet Explorer v.11.0.9600.17843):

body {
font: normal 15px arial;
padding: 1em;
}
.button {
background: #444444;
border: none;
box-sizing: content-box;
color: #ffffff;
cursor: pointer;
display: inline-block;
font-family: arial;
font-size: 1em;
height: auto;
line-height: normal;
margin: 0;
min-height: 1em;
padding: .3em;
text-decoration: none;
}Run Code Online (Sandbox Code Playgroud)
<a class="button" href="#">button</a><button class="button">button</button><input class="button" type="button" value="button" /><span class="button">button</span>Run Code Online (Sandbox Code Playgroud)
我有一个@media print{}部分来调整打印站点。我在主块之前强制分页。然而,元素在 Firefox 中重叠(其他浏览器按预期渲染所有内容)。正如下面的打印预览所示,红色块显示在顶部或之前的内容上,而不是跳转到第 3 页:
HTML 结构是这样的:
\n\n<div class="cols">\n <div class="col col1de2">This is the yellow block</div>\n <div class="col col2de2">This is the blue block</div>\n</div>\n<div class="extra">This is the red block</div>\nRun Code Online (Sandbox Code Playgroud)\n\n...这是相关的 CSS:
\n\n.cols{\n overflow: hidden;\n}\n.col{\n float: left;\n width: 40%;\n}\n.extra{\n page-break-before: always;\n clear: both; /* Attempted workaround: didn\'t work */\n}\nRun Code Online (Sandbox Code Playgroud)\n\n尽管您需要打印 JSFiddle 的结果框架(可能打印到 PDF 打印机\xe2\x80\x94,不确定如何触发框架中的打印预览菜单项),但您可以在其中看到操作。
\n\n您能找出解决办法或解决方法吗?
\n