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
答案 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);