繁体   English   中英

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

[英]How do you set the document title using Purescript?

搜索了一段时间后,我在 Pursuit 中找到了具有DocumentTitle数据类型的模块DOM.HTML.History 这种类型可能与函数一起使用

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

但是,要更改页面的document.title属性,我找不到显示如何调用此函数的示例(例如,我从哪里获得外部Foreign数据类型?)。 另外,我什至不确定这个功能是否会做我期望它做的事情......

不幸的是,Purescript 团队没有在他们的核心 API 中包含更改文档标题的方法,但仍然可以通过使用 purescript 方便的 FFI 机制来做到这一点。

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

文档.js

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

文件.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

现在您可以像调用 Console 的log函数一样调用setDocumentTitle ,当然,效果是DOCUMENT而不是CONSOLE

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

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

foreign import setDocumentTitle :: String -> Effect Unit

Javascript 保持不变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM