如何使用Purescript设置文档标题?

时间:2017-10-11 05:49:07

标签: purescript purescript-pux

搜索了一段时间后,我在Pursuit中找到了数据类型为DOM.HTML.History的模块DocumentTitle。此类型可能与函数

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

要更改页面的document.title属性,我找不到显示如何调用此函数的示例(例如,我在哪里获取外部Foreign数据类型?) 。另外,我甚至不确定这个功能是否能达到我的预期......

2 个答案:

答案 0 :(得分: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。< / p>

答案 1 :(得分:0)

kazouas答案看起来像这样(在PS 0.12中)

import Effect (Effect)
import Data.Unit (Unit)

foreign import setDocumentTitle :: String -> Effect Unit

JavaScript保持不变。