我正在 Purescript 中创建一个应用程序,我想要一个显示一些文档的文本框,然后我想根据鼠标在该文本上突出显示的句子在服务器上执行一些 NLP 任务。
如何在 Purescript 中提取该文本?
我正在 Purescript 中创建一个应用程序,我想要一个显示一些文档的文本框,然后我想根据鼠标在该文本上突出显示的句子在服务器上执行一些 NLP 任务。
如何在 Purescript 中提取该文本?
您可以在卤素组件的处理程序中订阅该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