Hacker News new | past | comments | ask | show | jobs | submit login

A clever use of history.replaceState and some special characters (to make it less obvious that the state's been altered) - "view source" in Chrome operates on the currently active URL, which after the replaceState has executed is the "not that easily" page.

You can also reproduce the behavior by navigating back, then forwards again - you'll see the "not that easily" page that way, as well (as the "try and view the source" page has been replaced in your history list).




Just to add to this, the "special characters" are "%E2%80%AE" which is the escaped form of the UTF-8 "Right-To-Left Override" control character (which effectively reverses the display of text).

If you try copying the URL to plain-text, you'll see: http://www.kurlak.com/john/%E2%80%AElmth.ecruos


Why is this possible? Is there a way to surpress this weirdness? I want to be able to trust my address bar again.


I believe that RTL character is one of the main failures of UNICODE. This should be part of the markup / rich text, not part of the plain text.


Even without the RTL directive, they might have used something like sourcе.html — which contains a non-ASCII glyph. So while RTL is problematic, I'm not prepared to call it a failure in that generally problematic space of unifying human communication.


I use it when I write Hebrew mixed with English...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: