2017-10-11 44 views
1

经过一段时间的搜索后,我在追踪模块DOM.HTML.History中发现数据类型为DocumentTitle。这种类型很可能与功能一起使用如何使用Purescript设置文档标题?

replaceState :: 
    ∀ e. Foreign -> DocumentTitle -> URL -> History -> Eff (history :: HISTORY | e) Unit 

然而,为了改变页面的document.title财产,我找不到例子,说明如何调用这个函数(例如,我在哪里得到外部Foreign数据类型?)。另外,我甚至不确定这个功能是否能做到我期望的功能...

+0

'replaceState'似乎与HTML5 History API相关。可能不是你在找什么。 – stholzm

回答

1

在Purescript团队没有在他们的核心API中包含改变文档标题的方法的不幸情况下,通过使用purescript方便的FFI机制,仍然可以这样做。

这两个文件添加到您的项目:

Document.js

exports.setDocumentTitle = 
    function (title) 
    { 
    return function() 
    { 
     window.document.title = title; 
    }; 
    }; 

Document.purs

module Document 
where 

import Control.Monad.Eff (kind Effect, Eff) 
import Data.Unit (Unit) 

foreign import data DOCUMENT :: Effect 

foreign import setDocumentTitle :: 
    ∀ fx . String -> Eff (document :: DOCUMENT | fx) Unit 

现在,您可以拨打setDocumentTitle,你会调用控制台的log函数,除了效果将是DOCUMENT,而不是CONSOLE,当然。