问题标签 [webkitgtk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
74 浏览

arm - WebKit GTK 无法在 Apple Silicon 上编译

我尝试在我的 ARM Mac 上构建 WebKit GTK,但链接过程失败:

我不确定为什么会这样。它在我的 Intel Mac 上编译得很好。有想法该怎么解决这个吗?

0 投票
0 回答
37 浏览

javascript - WebKitGTK# 转到页面顶部

我正在尝试制作一个文档阅读器(主要是漫画),所以我认为 WebKitGTK# 将是最好的选择,因为我可以执行一个 PHP 脚本,它会给我一个网页来阅读文档。

但是,当我移动到下一页(或章节)时,由于网页重新加载并且它的名称与上次读取的名称相同(PHP 脚本会自动生成一个具有相同名称的新名称,并覆盖它),它会移动到它在最后一页的位置,这意味着如果我在最后一页,当移动到下一章时,我将再次在最后一页,并且必须手动移动到页面顶部。

我已经考虑过了,我找到了 4 种可能的解决方案:

选项 1:在 webview 内部移动的功能

WebKitGTK(原始项目,C 语言)没有显示任何与移动 WebView 位置相关的远程内容。

有一个 webView.MoveFocus,但它似乎是 GTK# 属性(?)而不是 WebKit 属性。

选项 2:使用 JavaScript 代码移动到页面顶部

StackOverflow 中有一些问题会问这个问题。解决方案提供的代码可用于此目的。

问题是浏览器不想运行 JavaScript(我已经在设置中使用 告诉它这样做 settings.EnableJavascript = true;)。Firefox 确实执行了我抓取的代码并在重新加载后返回顶部完美无缺,但 WebKitGTK 没有。

但是,我已经看到 Python 和 C 的 WebKitGTK 绑定允许用户执行脚本。我没有找到任何 C# 绑定(文档真的很缺乏),但它们可能存在。

选项 3:将设置中的 settigs.EnablePageCache 选项设置为 false

我试过这样做,但似乎什么也没做。

选项 4:对 JavaScript 代码执行相同的操作,但使用 PHP/HTML

正如我上面提到的,这个程序的怪物会执行一个 PHP 脚本。修改它不会有问题,但 StackOverflow 中似乎没有关于此的问题。

我不需要为每一点都得到答案,只要其中一个就足够了,但如果你愿意,请随意。

对于任何语法错误/拼写错误/听起来我很生气/这篇文章太长/等等,我很抱歉,我不是以英语为母语的人。

0 投票
0 回答
20 浏览

gtk - WebKitGTK 如何确定每像素的设备像素?

如果我理解正确,CSS 当前将 px 定义为与设备无关的尺寸,基本上对应于 1/96 英寸。我想不通的是 WebKitGTK 如何确定有多少设备像素用于 1px。

根本问题是在我的 283 dpi 显示器上运行 Evolution 邮件客户端(它使用 WebKitGTK 显示 html 电子邮件)(Xft.dpi 设置为 283,并且 xrandr 和 xdpyinfo 都报告了正确的物理尺寸和显示器的 dpi) ,所有字体看起来都很好,但是<table>在 HTML 电子邮件中设置为 614px 的宽度实际上是 614 设备像素宽,对于包含的文本来说太窄了,它已经以合理大小的字体呈现. 所以在我看来,如果我可以“教”GDK/GTK/WebKitGTK 1px 基本上是 3 个设备像素,一切都会好起来的。但我不知道该怎么做;特别是,GDK_DPI_SCALE=2.95 evolution似乎没有帮助。(这里 2.95 = 283/96 = mydpi/css_px_per_inch。)

0 投票
1 回答
56 浏览

browser - webkit Safari 和 webkitGTK 的相关性

WebKitGTK 2.30 基于哪个版本的 (Mac) Safari Webkit?

0 投票
1 回答
94 浏览

c++ - 使用 libwebkitgtk-4 播放 Youtube 视频时出现问题

每当我尝试使用 Ubuntu 18 LTS 中的 libwebkit2gtk 库浏览 youtube 视频时,都会遇到“您的浏览器无法播放此视频”。我看到使用这个库的其他浏览器可以很好地播放 youtube 内容(org.gnome.Epiphany)。

有人可以指出我所缺少的正确方向吗?

0 投票
0 回答
46 浏览

rust - 全屏 GTK Box 应该只全屏 webkit2gtk 窗口,但全屏整个应用程序

我正在尝试使用 WebKit2Gtk-rs 在 Rust 中制作 Webkit2gtk 浏览器。当 WebView 尝试进入全屏时,它会使整个应用程序全屏,包括 webview 之外的内容。应用程序截图

我正在做的是创建一个 GTK 框,然后将两个 Gtk 按钮以及 Webkit2Gtk WebView 填充到其中。主窗口 -> Gtk 框 -> Button1、Button2、WebView。我只想要一个元素,WebView 去全屏。

相关文件的源代码可以在这里找到。

0 投票
0 回答
34 浏览

rust - 检测窗口大小何时改变

我正在用 gtk-rs 制作一个网络浏览器。我正在尝试检查全屏。我可以获取屏幕大小并将其与窗口大小进行比较,如果它们相同,则它是全屏的,我可以隐藏不必要的小部件。虽然这可行,但我只能在绑定一些键事件时让它工作(所以当我按下一个键时,它会检查窗口和屏幕大小是否再次相同)。我希望能够通过简单地注意到窗口大小发生变化来使其工作。

0 投票
0 回答
12 浏览

javascript - Ubuntu 19.10 上的 WebKitGtk 不显示 JavaScript 内容

我正在使用 WebKitGtk 浏览器引擎来显示网页的应用程序(Xibo Player 1.8R6 / Ubuntu 1910 桌面)。

大约一个月前,可能是由于更新,它已停止显示使用 javaScript 构建的 Web 内容。

显示了我构建的一个非常简单的 html 网页,其中包含很少的纯 html Div,基于 javascript 的 Div 只是没有显示,没有事件消耗它们在布局中的位置,只是被丢弃了。

在该机器上的 Google Chrome / Firefox 中运行完全相同的 html 网页时,一切正常,并且内容按我预期的方式显示。

由于我正在使用的应用程序不允许更改浏览器引擎,因此我无法使用 chrome/firefox。

我做了一个简短的研究,发现了很多关于“在 WebKitGtk 中启用 javascript”的帖子,但找不到任何解释如何做到这一点的文章。

任何帮助将不胜感激。

0 投票
0 回答
10 浏览

redirect - webkitgtk 为 ubuntu 20.04 中的某些 url 方案发送“load_failed”信号

这是关于我在 ubuntu 上使用 webkitgtk 遇到的问题,我看到 webkitgtk 为某些类型的重定向 url 导航发送加载失败信号,我尝试启用与数据 url、文件 url 导航相关的 webkitgtk 的许多不同设置,但它似乎对这个问题没有帮助,关于为什么会发生这种情况的任何想法?

webkitgtk 发送加载失败信号的一些 url 导航:错误代码 101,上下文'导航到 URL'msauth://com.msft.authentication.testapp/<>'失败'错误代码 102,上下文'导航到URL 'https://login.live.com/oauth20<>srf' 失败' 错误代码 101,上下文'导航到 URL 'msauth://com.microsoft.identity.client.sample.local/<>' 失败'错误代码 2,上下文 '导航到 URL 'https://msidlab<>.onmicrosoft.com/SinglePageApp-jQuery-DotNet' 失败' 错误代码 4,上下文'导航到 URL 'http://localhost' 失败'

这些是我为我们的 webview 对象启用的不同 webkitgtk 设置,但这没有帮助

如果需要任何其他信息,请告诉我,任何指针将不胜感激。

0 投票
0 回答
109 浏览

macos - 我可以在 Mac OS (OS X) 上安装 Suckless Surf 浏览器吗?

是否可以在 Mac OS 上安装 Surf 或任何其他 Suckless 软件?

我确实使用 MacPorts 安装了 WebKit2,但它并没有真正帮助。

之后我克隆了 Surf:

这产生了错误: