私はいくつかのリンクで少し奇妙なことをするサイトのために開発しています。
ユーザーがリンクをクリックすると、このようなインジケーターGIFがリンクの横に表示され、リンク自体が無効になります。次に、ページに移動します。これは、リンクがすぐに読み込まれない場合、せっかちなユーザーがリンクを繰り返しクリックして、サーバーに余分な負荷がかかる可能性があるためです。
これを行う方法は次のとおりです。
<a id="link1" href="/target_page"
onclick="var link = document.getElementById('link1');
var loc = link.href;
link.removeAttribute('href');
link.setAttribute('onclick', 'return false;');
document.getElementById('link1_img').style.display='';
window.location = loc;">
Link Text
<img id="link1_img" src="/images/indicator.gif" style="display:none;" />
</a>
ここに問題があります。これは、ユーザーがリンクを通常どおりクリックするか、右クリックしてコンテキストメニューから新しいウィンドウまたはタブで開く場合に期待される動作を示しますが、ユーザーが中クリックまたはCtrl+を押すと常に正しく機能するとは限りません。リンクをクリックします。
その場合の望ましい動作は、JavaScriptをすべてスキップして、新しいタブでリンクを開くことです。私は各主要ブラウザの最新バージョンを使用してWindowsで簡単なテストを行いましたが、IE、Firefox、Operaはすべてこれを行います。ただし、ChromeとSafariはインジケーターを表示し、現在のタブでリンクを開きます。
すべてのブラウザで一貫して動作させる方法について何か提案はありますか?