为什么这个链接指向谷歌而不是雅虎?

wwa*_*waw 1 html javascript events

<a onclick="dataBounce('http://yahoo.com');" href="http://google.com">Yahoo? :-/</a>

<script>
function dataBounce(dest) 
{
  // Note: dest is assumed to be encodeURI()ed. 
  var ie = !-[1,];

  var bouncer = 'data:text/html;charset=utf-8,%3C%21doctype%20html%3E%3Cscript%3Ewindow.location%20%3D%20%27'+ dest +'%27%3B%3C/script%3E';
  console.log('bouncer: ' + bouncer);
  window.location = !ie ? bouncer : dest;
  return false;
}
</script>
Run Code Online (Sandbox Code Playgroud)

呀,href是谷歌,但我有一个onclick处理程序劫持的链接上点击,导航到数据URI其弹跳windowlocation雅虎.但是,当我点击链接时,我仍然被带到谷歌.为什么?

我为什么要这样做?这部分只是一个实验,部分是我想在实践中用来保护用户隐私的东西:通过创建一个中间保镖页面,引用者可以屏蔽目标服务器.

这是链接:

http://jsbin.com/efaful/1

MrC*_*ode 11

因为在执行任何操作后都需要返回false onclick以防止链接的默认行为.

<a href="http://google.com" onclick="dataBounce('http://yahoo.com'); return false;" />link</a>
Run Code Online (Sandbox Code Playgroud)

或者让你的dataBounce函数返回false并且:

<a href="http://google.com" onclick="return dataBounce('http://yahoo.com');" />link</a>
Run Code Online (Sandbox Code Playgroud)

  • 不是唯一的方法.`e.preventDefault();`ftw (2认同)