virtual-dom
virtual-dom copied to clipboard
`javascript:` ban disallows legitimate use for bookmarklets
See https://github.com/Janiczek/ellies/issues/3
I want to create a bookmarklet, which means an <a href="javascript:...">link</a> that I can drag to my bookmarks tab and there click on it to perform some JS on any page I'm on.
Elm's VDOM disallows this so the best I could do is to link to a file on GitHub that contains the bookmark source code.
It's still possible to have a javascript: link using Html.Attributes.property, although this seems like more of a workaround than a solution:
module Main exposing (main)
import Html exposing (Html, a, text)
import Html.Attributes exposing (property)
import Json.Encode as E
main : Html msg
main =
a [ property "href" (E.string "javascript:alert(\"This works!\")") ] [ text "Click me" ]
Note this workaround doesn't work with --optimize builds.
Note this workaround doesn't work with
--optimizebuilds.
Unfortunately this is true and makes this nice workaround useless :disappointed:
virtual-dom has recently been fixed; this now doesn't work in non-optimized builds either.
Here is a way to have bookmarklets in Elm via WebComponents: https://ellie-app.com/hwbBHmqLQ8Ra1