问题标签 [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.
c - 如何在 WebKit2GTK 中获取光标下图像的图像标题属性
这似乎是一个非常愚蠢的问题,但我无法弄清楚谷歌的内容。我想要 xkcd hovertext,它是标签的title
属性。有,和, 但没有. 我该怎么办?img
WebKitHitTestResult
get_link_uri
get_link_title
get_image_uri
get_image_title
编辑:这是现有代码,来自surf
浏览器的源代码,它获取链接、图像或媒体 URI,但忽略标题属性(如果有)
go - 如何基于 javascript 调用调用“外部”操作
在 golang/webview 应用程序上,当在 Web 应用程序上呈现某个 javascript 调用时,我需要能够调用外部应用程序。我一直在使用https://github.com/zserge/webview和 window.external.invoke 一段时间,但似乎这个调用已被弃用,你能想到一个替代方案吗?
c - 使用 Javascriptcore Glib API 返回本机对象
我正在学习 webExtensions,我为 webkit 编写了一个示例 web 扩展,在其中我使用了 javascriptcore DOM/C API。我提到了 Binding native objects with JavascriptCore C Api和https://github.com/vrruiz/WebKit-JavaScriptCore-Extensions而且我能够返回所有数据类型,包括本机对象。
在最近的 webkit 版本中,引入了新的 JavascriptCore Glib API,我正在尝试将我的测试代码迁移到新的 JSC glib API。我在 webkit 工具目录中引用了测试代码,并且能够将本机数字、字符串、布尔值返回给 javascript(使用 HTML 测试应用程序)但我无法返回任何本机对象。例如,当我尝试返回 Gfile 对象时,出现以下错误
TypeError:不支持的类型 GObject
我尝试将返回类型从 G_TYPE_OBJECT 更改为 JSC_TYPE_VALUE 但我不确定如何将 GFile 对象转换为 JSCvalue。如果我不转换,那么在应用程序中我得到 NULL 对象。
HTML 和 JavaScript 代码
C++ 代码
python - 一些 SVG 元素未在 python webkitgtk 应用程序中呈现
我正在编写一个小应用程序来使用 python gtk3 与 WebKit 和 SchemDraw 绑定来生成电路图。我的意图是使用 SchemDraw 的 svg 输出(内部使用 matplotlib)并将其呈现在 WebView 小部件中。当我加载由 matplotlib(从文件和 StringIO)生成的 svg 时,WebView 窗口中缺少一些水平和垂直线元素。
我尝试在多个浏览器(Firefox、Google Chrome 和 Epiphany)中打开相同的 svg 文件,并且所有元素都正确呈现。我认为 Epiphany 将是一个很好的测试,因为它似乎使用了 WebView 实例,尽管是在 C 中。
gtk 程序:
呈现 example.svg 的代码(SchemDraw 网站上的示例):
我怀疑需要更多的 WebView 实例设置才能使其工作类似于我测试过的浏览器,但我不确定如何在此处继续。
javascript - 如何访问 JSCValue 对象的属性
使用以下代码:
我得到[object HTMLBodyElement]
打印但没有Instance of HTMLBodyElement
。我对此有几个问题。
- 如何在无需检查的情况下获得 JSCValue 的类?
- 为什么当前检查不起作用?
- 如何访问对象的其他属性?当我尝试增加索引时,我得到的只是未定义的,当我使用时,我
jsc_value_object_enumerate_properties()
在内存中只有一个地址。我的目标是访问 CSS、标签、ID/Class、父元素和子元素。我不知道如何将 char** 转换为可用信息。
javascript - 带有 JSCValue* 对象的 jsc_value_object_invoke_method() 不起作用
我正在尝试从 C++ 代码中调用一些 jQuery 函数。我所做的是将整个 jQuery 库复制为一个字符串,并使用 jsc_context_evaluate() 来访问所有 jQuery 方法。
这是一个带有字符串的非特定精简版本,它工作正常:
这会将“some-div”的内容更改为“foo”。(我知道 'some-div' 应该有一个 '.' 或 '#' 但它只是为了表示)
当我尝试使用一个对象时,该功能不起作用。
而不是 'some-div' 得到 'some-other-div' 的内容,什么都没有发生。当我将返回值打印...invoke_method()
为字符串时,jsc_value_to_string()
我得到未定义。我用其他 jQuery 方法尝试过,add
但结果相同,函数返回 undefined 并且没有任何变化。
c++ - 减少 g++ RAM 使用量
除了“获得更多内存”之外,我还没有真正找到这个问题的可靠答案。有没有办法减少 g++ 在编译过程中使用的内存?我(出于某种原因)试图在具有 1GB 内存的 g4 mac mini 上编译 webkitgtk。它无法升级。当前的编译选项是
-Os -mabi=altivec -mcpu=native -mtune=native
. 它有 1GB 内存和 1GB 交换空间,但内存不足。虽然理论上我可以继续添加交换空间,但实际上这会变得非常慢,我想尽量减少它。
macos - 无法构建 WebKitGTK:缺少 ICU 库但无法安装它们
我正在尝试按照他们在此处建议的说明https://trac.webkit.org/wiki/BuildingGtk#BuildingWebKitGTKfromareleasetarball构建 WebKitGTK ( 2.28.0 ) 的最新版本。解压缩下载的 tar.xz 后,我在 shell 窗口中打开该文件夹并运行命令:
我之前通过 Homebrew 安装了 Ninja:
不幸的是,我遇到了一些错误:
似乎某些库未安装(数据、i18n、uc)。尝试通过 Homebrew 安装uc后,按照此 StackOverflow 答案中的说明进行操作,仍然显示相同的错误。
我在 Mac 机器上,Mojave v. 10.14.6。
linux - 在 Linux 上调试 Webkitgtk
我通过以下方式构建了一个 WebkitgtkTools/Scripts/build-webkit --gtk --debug
有没有办法可以在 Linux 上的 GDB 中使用 HTML 文件对其进行调试?
我不知道如何运行打开 HTML 文件的 WebKitWebProcess。
我在Debugging WebKitGTK+中找到了一些信息,所以我尝试
了WEB_PROCESS_CMD_PREFIX='/usr/bin/gdbserver localhost:8080' Tools/Scripts/run-minibrowser --gtk --debug /path/to/my/test.html
然后在另一个终端中运行gdb ./WebKitBuild/Debug/bin/WebKitWebProcess
并在 GDB 中设置target remote localhost:8080
.
但是似乎我找不到一些符号。例如,test.html
包含在WebKit 的 ASAN 构建中崩溃的漏洞。WebCore::RenderObject::RenderObjectBitfields::isBox()
但是我无法info symbol
在带有 --gtk 标志的 gdb 中找到它。
我也试过:gdb ./WebKitBuild/Debug/bin/MiniBrowser
和run test.html
,但我得到了
/nas/ug16zy2/webkit/webkit-2.20.2/WebKitBuild/Debug/bin/MiniBrowser: error while loading shared libraries: libwoff2dec.so.1.0.2: cannot open shared object file: No such file or directory
我想我可能会与 WebKit 和 WebKitgtk 混淆......谁能给我解释一下。非常感谢。
webkit - 如何在 webkitgtk 中获取响应正文?
我试图处理 webview resource_load_started 和 webresource finished 信号以获取响应正文,但遇到了麻烦。
这是我的python代码:
输出如下(去掉了 https 前缀):
我的问题是我使用正确的信号处理程序吗?如果使用正确,那么,为什么resource.get_data()
总是返回 None,那里会发生什么?我只能获取响应 URL 及其长度。