2017-10-11 43 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,當然。