在 GTK+3 中滚动 WebKit2.Webkit 窗口

2023-12-25

如何滚动webkit2gtk widget?

In webkitgtk (aka. webkit1)你包裹你的WebView in a ScrolledWindow,因此可以使用其vadjustment财产。

For wekit2gtk,这个调用WebView刚刚返回None,而且我看不到其他可以调用的方法。

作为解释,我想添加触摸支持webkit2。 我有hacked我的方法是在上面添加一个透明层WebView小部件1,但现在我正在检测触摸,但我似乎无法使用它们。

1 今天发布的版本消除了对顶层的需求。尽管如此,我还是有触动,但我却无能为力。


WebKit2 中的进程分离有一些优点,但也让很多事情变得更加复杂。我相信滚动就是其中之一:它发生在 Web 进程中,因为滚动条现在由 webkit 处理,而不是 Gtk 小部件。对于触摸处理来说也是如此:它部分是在网络进程中完成的。卡洛斯·加西亚·坎波斯写过一篇博客文章 http://blogs.igalia.com/carlosgc/2013/09/10/webkit2gtk-web-process-extensions/关于使用 WebKitWebExtension 来帮助解决这个问题。请注意,该设计对您的代码也有很多影响:部分代码将在完全不同的进程中运行。

答案的其余部分尚未经过测试,请将此更像是一个有根据的猜测:

我相信控制滚动的方法是通过DOM API http://webkitgtk.org/reference/webkitdomgtk/unstable/, 进一步来说DOMDOMWindow.scroll*功能。复杂的部分是获取对DOMDOMWindow-- 你需要实现一个WebExtension它将在 Web 进程中运行,并允许您在以下情况时收到通知WebPage被建造。这WebPage.get_dom_document()打电话给你一个DOMDocument and DOMDocument.get_default_view()然后应该给你DOMDOMWindow你需要。

对于 DOM API 文档,Mozilla https://developer.mozilla.org/en-US/docs/DOM/DOM_Reference可能是比斯巴达 WebKit-GTK-DOM 文档更好的参考。

如果我正在做你想做的事情,我的第一站将是 Freenode 上的 #webkitgtk+ IRC 频道,以检查上述内容是否真的是做你想做的事情的明智方法......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 GTK+3 中滚动 WebKit2.Webkit 窗口 的相关文章

随机推荐

  • 不使用“synchronized”关键字的线程安全代码?

    有哪些可能的方法可以使代码线程安全而不使用synchronized关键词 其实方法有很多 如果您没有可变状态 则根本不需要同步 如果可变状态仅限于单个线程 则不需要同步 这可以通过使用局部变量或java lang ThreadLocal h
  • SSRS - 如何构建简单的多列报告?

    我正在使用 SQL Server 2008 我想在报告的多列中显示表中的 1 个单个字段 就像我要打印标签一样 我怎样才能实现这个目标 Example 而不是打印 姓名报告 Andrea Austin Barbara Bob Bruno C
  • 引入 git switch 后 git checkout 还能做什么?

    众所周知 git checkout是一个非常重载的命令 我确实理解引入了某些命令来分发 例如到git switch 在我使用以下命令之前 git checkout
  • 从辅助节点提升辅助节点到主节点

    我的测试系统 由于缺乏资源 有一个双 mongodb 复制集 没有仲裁者 在某些系统更改期间 其中一台服务器停止运行并且不会恢复 该服务器恰好托管主 mongo 节点 这使得该组中唯一的其他成员成为次要成员 我知道我应该为集群至少拥有三个节
  • Java 中的 MySQL 连接错误 - com.mysql.jdbc.Driver

    我一直在尝试将我的java应用程序连接到MySQL数据库并使用了以下代码行 import java sql public class AcceptValues extends HttpServlet protected void doPos
  • 页面加载时如何从 TextInputLayout 中移除焦点?

    当这个 xml 加载到片段中时 焦点直接转到第二个编辑文本 我希望编辑文本应该集中于触摸它 我想使用我自己的颜色来提示和输入文本 非常感谢任何帮助
  • 当我们运行密集光流(farnnback)时,输出到底是什么?

    我一直在运行官方文档页面中给出的密集光流的Python实现代码 在代码的某一行 他们使用mag ang cv2 cartToPolar 流 0 流 1 当我打印 mag 的值时 我得到这些 请检查此图像以获取我得到的输出 https i s
  • 根据第二列条件删除重复项

    我正在尝试根据不同列上的最大值从数据框中删除重复行 因此 对于数据框 df lt data frame rbind c a 2 3 c a 3 4 c a 3 5 c b 1 3 c b 2 6 c r 4 5 colnames df lt
  • 点击 UITableViewCell 时如何在 iPhone 应用程序上播放 YouTube 电影?

    我是 iPhone 开发的新手 刚刚开始开发一个包含 UITableView 的应用程序 其中每个单元格都包含 Web 视图形式的 YouTube 视频缩略图 为了在 iPhone 上嵌入 YouTube 播放器 我使用了以下代码 void
  • Google App Engine 上的元数据库

    我正在尝试使用 Google Cloud SQL MySQL 在 gcloud 引擎上设置元数据库 我已经使用它运行了this https github com eddies metabase gaegit 和这个 app yaml run
  • curl 将 JSON 文件发送到 REST API,同时还使用 --data-urlencode 来编码查询参数

    Setup 在 Bash 脚本中 我使用curl 将 JSON 文件的内容 POST 到在 nginx 后面的 tomcat 上运行的 RESTful API 此 POST 还需要在 URL 末尾使用 3 个不同的查询参数进行基本身份验证
  • 从数组中删除一个非唯一值

    鉴于 PostgreSQL 9 6 中的此表 CREATE TABLE test table id int PRIMARY KEY test array text 像这样的行 INSERT INTO test table id test a
  • 如何设置 git 分支以推送到具有不同分支名称的远程并从完全不同的 url 拉取

    我的本地 git 存储库需要从一台服务器拉取 然后 它需要将特定分支推送到不同服务器上具有不同分支名称的审查存储库 就像是 从 Server1 上的 PullOnlyRepo 中提取所有内容 也许我们会称之为 origin 将分支修补程序推
  • 仅获取正在使用的 CDI 托管 Bean

    我的目标是从 JSF2 ExceptionHandlerWrapper 中获取所有正在服务的 CDI 托管 bean 某个父类的 的集合 请注意 异常处理程序部分很重要 因为该类本身不是有效的注入目标 所以我的假设 也许不正确 是我唯一的途
  • C++调用模板类的特定模板构造函数

    如果类也是模板 是否可以使用模板参数调用构造函数 include
  • 如何使来电静音

    我正在尝试将来电静音并防止 BlackBerry 设备响铃 我尝试了 Alert setVolume 0 和一些 EventInjector 键 但这不起作用 那么如何让来电静音呢 我对你的问题感到困惑 并决定接受挑战 我尝试了不同的事情
  • elisp:将文件读入列表列表

    我需要将文件内容读入二维列表 由换行符和空格分隔 例如 a b c d 需要成为 list list a b list c d 目前我只知道如何将内容读入由换行符确定的简单列表中 每当我需要使用该列表中的元素时 我每次都必须用空格将其拆分
  • 从构造函数初始化 Typescript 类值

    我使用 TypeScript 通过 KnockoutJS 创建一些类 并从 WebAPI 返回的一些 JSON 加载数据 问题是我想从构造函数将 JSON 值复制到我的 TypeScript 类中 但如果我仅在基类中执行此操作 则继承的属性
  • JSON.net 不包含 EmitDefaultValue false 的 null 属性

    我有一个包含许多数据合约的系统 其中成员装饰有 DataMember EmitDefaultValue false 我有一个情况 当序列化为 JSON 时 我需要在 null 时包含成员 无论我选择什么序列化器设置 我都无法使其工作 Tes
  • 在 GTK+3 中滚动 WebKit2.Webkit 窗口

    如何滚动webkit2gtk widget In webkitgtk aka webkit1 你包裹你的WebView in a ScrolledWindow 因此可以使用其vadjustment财产 For wekit2gtk 这个调用W