When I have mixed content (SSL and non-SSL on a
https:// page), I would rather have a broken page than an insecure page.
Is there any way to disable the loading of non-SSL elements while on an https page?
HTTPS everywhere by the EFF may suit your needs it only supports a limited number of sites though. For non-supported sites you may need to find another option. https://www.eff.org/https-everywhere
On internet explorer 9 there is a "block unsecured images with other unsecured content" and a "display mixed content" enable/disable/prompt settings that should also help. Haven't found these type of settings for chrome or firefox yet but I would suspect that firefox's about:config would have similar settings.
Set the values of both of these about:config items to