Webkit browsers (Chrome, Safari, etc.) all show an annoying bug: When you have a frameset page and one of those frames sets the hash location, the whole page reloads. This doesn't happen in IE or Firefox, and has been submitted (and not rejected) as a bug in Webkit. But, the bug was submitted years ago, and nobody seems to care.
I found a workaround and posted it to stackoverflow. In short, use a full page table instead of a frameset.