Fixed your issue with search by hashtag.

Your second version of the hashtag query was the right one. The url of your ajax call was just missing the callback parameter to force the response data to be delivered jsonp style. Just like you already use it in your username query.

Also the response data is layed out in a different way when you query via the search api. So the Tweets are stored in an array within the returned json object (in data.results).

So, it should work now. 

BTW: Storing the current search phrase as hash added to the url breaks as soon as you try to store a hashtag this way. So I'd suggest to encode hashtags somehow before adding them to the url in the address bar.