2

createElement() によって作成されたリンクを上書きしてウィンドウのステータスを変更したいのですが、うまくいかないようです (Chrome で試しています)。

Googleが彼のインデックスのリダイレクトされたリンクでそれを作ったように、それは可能であるようです. インデックス内のリンクにマウス オーバーすると、ウィンドウ ステータスに、クリックされた実際のリンクではない href が表示されます (Google リダイレクト)。ですから、ブラウザがセキュリティ上の理由でこれをブロックしているとは言わないでください。

私は次のことを試しました

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

Google は非常に巧妙なトリックを行っています。マウスのメイン ボタンが押されると ( 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 に答える