Your post title shows that you want to change the current page programmatically using JavaScript but still having the HTTP referrer provided (from what I understood, using a <a> tag is just for a test case).
You need to be aware of cross-browser issues:
The HTTP referrer header (HTTP-Referer) is set when changing window.location.href under the following browsers:
MSIE 9 (but probably any version above 9)
Firefox (at least 3.0, 3.5, 4.0, 5.0, but most probably all versions)
Chrome (at least 9, but most probably all versions)
Safari (at least 5, but most probably all versions)
Opera (at least 11, but most probably all versions)
MSIE (at least 6, 7, \8): the referrer is not set when changing window.location.href
Firefox (at least 3.0, 3.5, 4.0): the click function does not exist (this is why some pseudo-solutions are based on myLink.click())
Firefox 5 : the click function exists under Firefox 5 but does not change the window location, so all the methods relying on the existence of the myLink.click() method will not work. Calling myLink.onclick() or myLink.onClick() raise an error ("onclick is not a function"), so solutions based on these calls will not work.
var navigatorName = "Microsoft Internet Explorer";
if (navigator.appName == navigatorName){ //IE浏览器在location.href时不会设置referer
var referLink = document.createElement('a');
referLink.href = url;
document.body.appendChild(referLink);
referLink.click();
} else {
location.href = url;
}