【问题标题】:How to get selected text on webkit2gtk如何在 webkit2gtk 上获取选定的文本
【发布时间】:2017-09-27 08:22:42
【问题描述】:

有什么方法可以在 webkit2gtk 上选择文本。我在 Vala webkit2 的 API 上找不到任何内容。

要求是在用户选择文本后松开鼠标后获取网页上选中的文本。

【问题讨论】:

    标签: webkit vala webkitgtk


    【解决方案1】:

    获取当前选择的唯一 API 是通过 DOM selection API。在 WebKitGTK+ 中访问 DOM 有点尴尬,因为 DOM 表示存在于 Web 进程的内存中,它与具有 WebKit.WebView 小部件的应用程序进程是分开的。

    要在两者之间架起一座桥梁,您可以调用 WebKit.WebView.run_javascript() 并传递适当的 JavaScript 代码以在 Web 进程中执行,例如:

    web_view.run_javascript("window.getSelection().getRangeAt(0).toString()")
    

    要使用此方法,您需要使用 vala 0.38,或者将 JavaScriptCore VAPI 导入您自己的项目(就像 Geary 一样),这样您就可以计算出返回值是什么。

    还请注意,您可能需要对此添加一些检查:DOM 选择对象中至少有一个范围,等等。

    【讨论】:

    • 非常感谢,我已经开始使用 WebKit.WebView.run_javascript() 作为后备并使用此处描述的 javascript 函数[stackoverflow.com/questions/5379120/… 获取选择文本。然后使用该函数中的值来设置可以通过 WebView.get_title() 方法取回的文档标题。遗憾的是,更原生的 gtk 控件不容易用于 DOM 访问。接受这个作为答案。
    • 啊,是的,我忘记了旧的设置标题/获取标题技巧。这无疑是早期 vala 版本中缺少 JavaScriptCore 的最简单的解决方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多