Practical objection: By the time you've done that, you'd have written a complete IBM-PC-to-browser compatibility layer. ... This would be super cool if it worked, I'm just sceptical.
These won't run TempleOS though, because it requires x86-64.
Yes you'll need interrupts, but you'll need a hell of a lot more than that! If you're interested in learning about emulation then start with chip-8, or a similar simple system. Once you've done that you'll become much more aware of all the parts you're not aware of.
But seriously this is a lot of work, rewarding work, commercially useful work, but a throwaway comment "Lets do this in javascript with <canvas>" is a significantly understated commen suggests to me you don't understand the scope of what you're proposing - not that this should stop you, it would be rewarding. It's just a fine line between pondering "What if ..?" and being insulting to Terry.
You can run QEMU in a web browser [0], although it could be interesting to see a webassembly port. It would be an interesting experience to scroll such an article with live, interactive VMs snapshoted at different stages instead of static images.
Edit: Although, it's a low-level emulation, not the insanely high-level emulation that you seem to be looking for.