For our convenience I put newlines in, just remove them. I checked it on the javascript: line (where you have to add javascript:, surround it with void(), and change the semicolons to commas). If that doesn't exactly work, something like it could. Any JS framework with the ability to use objects to set attributes on a new tag could be written more concisely but this doesn't depend on any frameworks.