Why is #_=_ appended to the redirect URI? passport facebook code example
Example 1: Why is #_=_ appended to the redirect URI? passport facebook
//If #_=_ was appended to the URL:
if(location.hash == '#_=_'){
//Store the "clean" URL in a variable
var cleanURL = location.href.split('#')[0];
//Set the URL to the "clean" URL
location.replace(cleanURL);
};
Example 2: Why is #_=_ appended to the redirect URI? passport facebook
// Remove the ugly Facebook appended hash
// <https://github.com/jaredhanson/passport-facebook/issues/12>
if (window.location.hash && window.location.hash === "#_=_") {
// If you are not using Modernizr, then the alternative is:
// `if (window.history && history.pushState) {`
if (Modernizr.history) {
window.history.pushState("", document.title, window.location.pathname);
} else {
// Prevent scrolling by storing the page's current scroll offset
var scroll = {
top: document.body.scrollTop,
left: document.body.scrollLeft
};
window.location.hash = "";
// Restore the scroll offset, should be flicker free
document.body.scrollTop = scroll.top;
document.body.scrollLeft = scroll.left;
}
}
Example 3: Why is #_=_ appended to the redirect URI? passport facebook
<html xmlns:fb='http://www.facebook.com/2008/fbml'>
<head>
<script type="text/javascript">
if (String(window.location.hash).substring(0,1) == "#") {
window.location.hash = "";
window.location.href=window.location.href.slice(0, -1);
}
if (String(location.hash).substring(0,1) == "#") {
location.hash = "";
location.href=location.href.substring(0,location.href.length-3);
}
</script>
</head>
<body>
URI should be clean
</body>
</html>
Example 4: Why is #_=_ appended to the redirect URI? passport facebook
$(window).on('load', function(e){
if (window.location.hash == '#_=_') {
window.location.hash = ''; // for older browsers, leaves a # behind
history.pushState('', document.title, window.location.pathname); // nice and clean
e.preventDefault(); // no page reload
}
})