javascriptjsonjsonpunobtrusive-javascript

How do I create a random method name


I plan on using JSONP to call an external web service to get around the fact that I don't want to create a global function that could potentially conflict with the calling page. I thought that creating a random function name and passing it up would work. Something like this:

<script src="www.foo.com/b?cb=d357534">

where cb is the callback function name, the server would return

d357534({my json data});

What I want to know is how to create the random function name, I'm sure I could use eval but is this the best way to go about it?

Essentially, what I am trying to do is this:

var d + Math.floor(Math.random()*1000001) = function(){...   

Solution

  • This should do what you want. You need to save the function name somewhere so that you can pass it to the server, but you can do that inside of a local scope to avoid polluting your global namespace.

    var functionName = 'd' + Math.floor(Math.random()*1000001);
    window[functionName] = function() { ... }