Actually you can, but the browser must support registerProtocolHandler.

Good point. That only works for handling the protocol inside the browser though (although, nothing's stopping a browser from going further if they want to implement it).