问题标签 [webkit2]

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 投票
1 回答
366 浏览

python-3.x - 是否可以像其他 gtk 小部件一样在应用程序中使 webkit webview 透明?

我正在用 Python3、Gtk3 和 Webkit2 编写一个简单的应用程序。其中一个元素是 webview,但我希望 webview 对父容器的背景设置是透明的——在这种情况下,Gtk.Box 中的 Gtk.Paned 可以选择设置背景图像。

我在那里找到的大多数解决方案都为您提供了一个对屏幕/桌面透明的 web 视图。像这个解决方案:

这不是我想要的。有什么方法可以选择对 webview 透明的内容吗?还是另一种产生预期结果的方法?

0 投票
1 回答
886 浏览

python-3.x - 使用 WebKit2 获取 HTML 源代码

我使用了一个小的 Python3 程序,我想将它从 Webkit 切换到 WebKit2。简而言之,我在 Gtk 窗口中打开一个网站,并希望将 html 代码存储在一个变量中。对于 WebKit 来说很简单:

使用 WebKit2 一切都很好,除了:我无法获取 html 代码......

WebKit2 中是否有“框架”的等价物?也许有人知道解决方案。

问候和谢谢。直到

0 投票
0 回答
270 浏览

javascript - 如何从 Python、Javascript 连接到 UserContentManager“收到的脚本消息”?

如何从 Python、Javascript 连接到 WebKit2.UserContentManager "script-message-received"?几天来,我一直把头撞在“墙上”,试图弄清楚这一点。我试图让 UserContentManager 返回整个文档以及我单击的元素。任何帮助将不胜感激,谢谢。这是可运行的代码:

0 投票
1 回答
125 浏览

javascript - webkit2gtk-4.0 script_message_received 不起作用

我正在从 Vala 创建一个 WebKit WebView。

我连接了 UserContentManager 并注册了一个脚本消息处理程序。

在此之前我还连接了 script_message_received 信号,因为它写在 Valadoc 文档中。

脚本已成功注册,但未script_message_received触发。执行脚本后

什么都没发生。

我该怎么做才能触发信号?

0 投票
2 回答
1428 浏览

python-3.x - WebKit2 和 DomDocument/JavaScriptCore (Python3)

我正在将 Python3 应用程序转换为使用 WebKit2 而不是 WebKit(在 Debian Buster 中不再可用)。

在应用程序中,用户可以(取消)选择我从 Python3 应用程序中读取的复选框。在原始代码中,我可以简单地获取 Webview 的 DomDocument 并遍历子对象以返回具有给定名称的对象的值(下面的示例代码)。

在 WebKit2 中,get_dom_document函数不再可用,WebKit2 文档也不清楚如何进行。

有谁知道如何从 WebKit2 Webview 或其他方式获取 DomDocument 按名称遍历所有对象并获取它们的值?

来自 WebKit Webview 的示例代码 DomDocument:

注意:“self”是 WebKit.Webview。

[编辑]

我一直在试验这个。首先,我尝试通过首先获取 WebPage 对象来获取 DomDocument。我找到了 WebView.get_page_id() 和 WebKit2WebExtension.get_page(page_id) 但不幸的是,这给了我这个错误:AttributeError:'gi.repository.WebKit2WebExtension'对象没有属性'get_page'。

之后我尝试了 JavaScriptCore 并使用 WebView.run_javascript() 和 WebView.run_javascript_finish() 插入 JavaScript。我得到了一个 JavaScriptResult 对象,但是当我尝试使用 .get_value() 获取值时,我收到了这个错误:TypeError:找不到'JavaScriptCore.Value'的外部结构转换器。

这里有一个用户有同样的问题但建议的解决方案对我来说也太复杂了。

这是我用于测试的代码(检查 get_element_values() 和 javascript_finished() 函数):

[编辑2]

在 Debian Stretch 中,您需要从 backports 安装软件包:

现在,WebKit2.JavascriptResult.get_js_value() 将返回一个 JavaScriptCore.Value 对象。如果我找到答案,我将进一步测试并回发答案。

检查此错误报告:https ://bugs.webkit.org/show_bug.cgi?id=136989

0 投票
1 回答
135 浏览

webkit - 当我尝试动态加载使用 webkit2gtk 库编译的自定义库 (.so) 时出现 Seg Fault

我创建了一个共享库,它有一个函数displaywebview,它启动一个 GTK 窗口并使用 webkit2gtk 将 URL 加载到其中。

现在我正在编写一个调用程序,它使用 dlopen 加载这个库,使用 dlsym获取方法displaywebview并调用这个函数。

在我调用webkit_web_view_new()的地方,我在displaywebview中遇到了一个段错误。有人可以帮我解决为什么会这样吗?

webkit_main.so

调用者.cpp

回溯详细信息:

注意

  1. 当我使用与 webkitgtk-1.0 相同的程序时,它运行得非常好。使用 webkit2gtk-4.0 它会出现这个问题。

  2. 当我用 libwebkit2gtk-4.0 编译 caller.cpp 时,奇怪的是它不再给出 seg 错误。

有人可以帮我弄清楚为什么会这样吗?

我正在使用带有 webkit2gtk-4.0-37 版本的 debian 9:2.22.2-1~bpo9+1

0 投票
0 回答
26 浏览

c - 如何在 WebKit2GTK 中获取光标下图像的图像标题属性

这似乎是一个非常愚蠢的问题,但我无法弄清楚谷歌的内容。我想要 xkcd hovertext,它是标签的title属性。有,和, 但没有. 我该怎么办?imgWebKitHitTestResultget_link_uriget_link_titleget_image_uriget_image_title

编辑:这是现有代码,来自surf浏览器的源代码,它获取链接、图像或媒体 URI,但忽略标题属性(如果有)

0 投票
1 回答
1149 浏览

python-3.x - 如何为本地文件设置 X-Frame-Options

我用pygobject(gtk3和webkit2)在python3中创建了一个网络浏览器,我想创建一个包含google的主页。我用 iframe 创建了一个 html 文件,但我看到了错误:

拒绝在框架中显示“ https://www.google.com/ ”,因为它将“X-Frame-Options”设置为“SAMEORIGIN”。

我该如何设置X-Frame-Options?网络中的所有解决方案都是本地服务器中的配置,但我没有本地服务器。

这是我的主页

0 投票
1 回答
167 浏览

javascript - 如何在 webkit2gtk 中向 javascript 公开本机代码

我想向 javascript 公开本机对象或函数,以便在浏览器中调用特定函数时可以在 C 中使用回调函数。

这个例子中,似乎可以在 WebKitGTK1 中使用信号“ window-object-cleared ”。

我怎样才能在 WebKitGTK2 中实现相同的功能,我希望它与WebKitWebExtension 有关。但我不确定,也没有明确的指导方针或实施 WebKitWebExtension 的例子。谁能帮我解决我的要求?

0 投票
1 回答
84 浏览

python-3.7 - 如何保存编辑的 webview 结果?

情况描述:Python 3.7、GTK 3.0、PyGObjects 3.34.0 Webkit2 4.0

我有一个对话框窗口,其中 GtkNotebook 包含 2 个选项卡。1. tab 包含可编辑的 Webkit webview, 2. tab 包含 textview。类构造函数中提供的参数之一是作为字符串变量的有效 HTML 片段

结果我想得到的是,在任何窗口中所做的任何更改都会自动反映在其他窗口中。

当前问题:使用此处提供的解决方案,之前在 webview 中所做的任何更改都会在切换记事本选项卡时被丢弃。调试显示通过上述调用获得的 html 不包含更改。

任何想法可能在逻辑或处理本身中缺少什么?

作为参考,对话框的代码如下: