Code Monkey home page Code Monkey logo

Comments (3)

sahat avatar sahat commented on May 10, 2024

There is a whole discussion on this issue: http://stackoverflow.com/questions/7131909/facebook-callback-appends-to-return-url

Most of the solutions involve manual URL cleanup via JavaScript. E.g.

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
}

In other words it's the Facebook's fault. But they apparently have a good reason for doing that: https://developers.facebook.com/x/bugs/318390728250352/

Now, the reason why I don't want to add that JavaScript code to cleanup the hash URL is to avoid putting non-application logic inside main.js. Since this is a boilerplate project I want to keep client-side javascript file to be clean and simple, instead of fixing other's shortcomings:

$(document).ready(function() {

  // Place JavaScript code here...

});

And as much as I'd like to add lots of client-side code to make this boilerplate even more impressive, doing so will only confuse other developers. But you do have an option of adding the above mention JS code yourself, to clean up the URL hash manually, if it bothers you.

from hackathon-starter.

dstroot avatar dstroot commented on May 10, 2024

I'd like to offer an alternative viewpoint. I think this is exactly the type of thing to include in a boilerplate framework (along with good comments/documentation about why it's there).

Why?

Because otherwise assuming all 4000+ people who starred this project actually use the framework someday they all have to independently figure out this quirk of facebook's and fix it. I don't want to have to search Stack Overflow.

I LOVE it when boilerplate frameworks deal with quirks like this so I can just focus on building stuff. Heck - why did jQuery and Bootstrap become popular in the first place? Because they dealt with all the cross-browser crap. ;)

from hackathon-starter.

wle8300 avatar wle8300 commented on May 10, 2024

I agree with @sahat.

Some people won't use Facebook connect, so if we add it to main.js, we might cause more confusion. And to echo Sahat, it's Facebook's fault so we shouldn't write glue code for them; they could later decide to fix it.

The best solution is to provide a link to S.O. in the README under the Facebook section. Submitting a PR...

from hackathon-starter.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.