删除Elm中的退格默认行为

时间:2016-01-18 00:40:09

标签: html5 canvas elm

I'm having more or less the same issues as this question,除了我在Elm编程。

我有一个用于输入文字的画布,但我想按退格键删除字符。当我按退格键时,浏览器就会回到他的最后一页。

我尝试了类似的东西,但它没有用。

canvas : Signal Element
canvas = Signal.map2(\(w, h) t -> Collage.collage w h [t]) Window.dimensions writtenText

mb = Signal.mailbox ()

removeDefaultBackspace = onWithOptions "onKeyDown" {defaultOptions | preventDefault = True} keyCode (\_ -> Signal.message  mb.address ())

main = Signal.map (\c -> Html.body [removeDefaultBackspace] [Html.fromElement c]) canvas

1 个答案:

答案 0 :(得分:2)

我已经玩了一段时间了,我可以开始工作的唯一解决方法就是在另一个stackoverflow post you mention中链接的那个。

在javascript中,在连接Elm模块之前,如果您附加到文档onkeydown事件,您将能够禁止顶级退格。

function preventBackspaceHandler(evt) {
    evt = evt || window.event;
    if (evt.keyCode == 8) {
        return false;
    }
}

document.onkeydown = preventBackspaceHandler;

var app = Elm.fullscreen(Elm.Main);
相关问题