2

我希望通过覆盖 createElement() 创建的链接来更改窗口状态,但它似乎不起作用(我正在尝试使用 Chrome)。

谷歌似乎有可能通过他的索引中的重定向链接做到这一点。通过将鼠标悬停在他的索引中的链接,您应该在窗口状态中看到一个不是真正点击的链接(谷歌重定向)的 href。所以,请不要告诉我浏览器出于安全原因阻止了这个,并帮助我做到这一点:-)

我试过以下

function createLink(id) 
{
  var link = document.createElement('a');
  link.onmouseover = function(){window.status='test';};
  link.href = 'http://www.google.com';
  link.id = '1';
  link.rel = 'nofollow';
  link.style.cssText ='border-bottom:2px solid;';  
  link.target = '_blank';
  link.innerHTML = 'Link';
  id.appendChild(link);
}

myElement=document.getElementById('id_text');
createLink(myElement);

但是窗口状态只显示 href 值。

4

2 回答 2

3

现代浏览器阻止更改状态。它必须由用户在浏览器的设置中启用。

Chrome 在 about:config 中有标志寻找dom.disable_window_status_change

它被禁用,因为它是一个安全问题。

现在既然你说我对谷歌有误,请查看链接!

<a href="http://staplesadvantage.com/" class="l" onmousedown="return rwt(this,'','','','14','AFQjCNER8Nv_Zhb-txDtR-b9O09SVzuTpQ','Ab3MA_Y5pbwgWlo68Wp1kA','0CI8BEBYwDQ','','',event)">Business Solutions | <em>Staples</em> Advantage</a>

rwt,捕获链接,取消点击,并进行重定向!

于 2012-12-06T19:11:18.270 回答
3

谷歌做了一个非常巧妙的技巧:当鼠标主按钮被按下时(onmousedown),他们改变了链接。您可以很容易地检查这一点:将鼠标悬停在链接上方,然后按下鼠标主按钮。链接发生变化。

为了达到这样的结果,您必须使用

function createLink(id) 
{
  var link = document.createElement('a');
  ///  vvvvvvvvvvv
  link.onmousedown = function(){this.href = 'http://www.example.com';};
  ///  ^^^^^^^^^^^
  link.href = 'http://www.google.com';
  link.id = '1';
  link.rel = 'nofollow';
  link.style.cssText ='border-bottom:2px solid;';  
  link.target = '_blank';
  link.innerHTML = 'Link';
  id.appendChild(link);
}

myElement=document.getElementById('id_text');
createLink(myElement);

请注意,重定向到用户预期之外的其他页面是粗鲁的,有时可能会被识别为恶意行为。

于 2012-12-06T19:27:44.057 回答