如何访问Purescript中突出显示的文本?

时间:2019-10-07 05:51:25

标签: purescript purescript-halogen

我正在用Purescript创建一个应用程序,我想要一个文本框来显示一些文档,然后我想根据鼠标在文本上突出显示的句子在服务器上执行一些NLP任务。

如何提取Purescript中的文本?

1 个答案:

答案 0 :(得分:0)

您可以在卤素成分的selectionchange处理程序中订阅initialize事件。

  Init -> do
    doc <- H.liftEffect $ Web.window >>= Window.document
    void $ H.subscribe $
      ES.eventListenerEventSource (EventType "selectionchange") (Document.toEventTarget doc)
        (const $ Just OnSelectionChange)

然后编写一个FFI函数以获取当前选定的文本,例如

foreign import getSelectionString :: Effect String
-- js
const getSelectionString = () => window.getSelection().toString()

然后在getSelectionString处理程序中使用OnSelectionChange

一个不完全相同的示例 https://github.com/nonbili/halogen-contenteditable-example/blob/master/src/Example/Editor.purs#L178-L180