I don't think this will work either. You can set `top.location`, but `top.location.hash` will be blocked as a cross-domain attempt. You always have write access to `top.location`, but you never have read access in a cross domain context. See [this Stack Overflow answer for details](http://stackoverflow.com/a/4358969). 

If you *knew* the original top.location, you could do something like `top.location = knownLocation + '#h123'`, but this is tough when the page may already have a dynamic hash component and it may have changed from the initial value.