我正在开发一个对一些链接做了一些奇怪的事情的网站。
当用户点击一个链接时,一个看起来有点像这样的指示器 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 会显示指示器并在当前选项卡中打开链接。
关于如何使其在所有浏览器上的行为一致的任何建议?